相关疑难解决方法(0)

PDO准备好的语句是否足以阻止SQL注入?

假设我有这样的代码:

$dbh = new PDO("blahblah");

$stmt = $dbh->prepare('SELECT * FROM users where username = :username');
$stmt->execute( array(':username' => $_REQUEST['username']) );
Run Code Online (Sandbox Code Playgroud)

PDO文件说:

准备语句的参数不需要引用; 司机为你处理.

这真的是我需要做的就是避免SQL注入吗?这真的很容易吗?

如果它有所作为,你可以假设MySQL.另外,我真的只是对使用针对SQL注入的预处理语句感到好奇.在这种情况下,我不关心XSS或其他可能的漏洞.

php security pdo sql-injection

631
推荐指数
6
解决办法
20万
查看次数

从SqlCommand对象获取生成的SQL语句?

我有以下代码:

Using cmd As SqlCommand = Connection.CreateCommand
    cmd.CommandText = "UPDATE someTable SET Value = @Value"
    cmd.CommandText &= " WHERE Id = @Id"
    cmd.Parameters.AddWithValue("@Id", 1234)
    cmd.Parameters.AddWithValue("@Value", "myValue")
    cmd.ExecuteNonQuery
End Using
Run Code Online (Sandbox Code Playgroud)

我想知道是否有任何方法可以将最终的SQL语句作为String获取,它应该如下所示:

UPDATE someTable SET Value = "myValue" WHERE Id = 1234
Run Code Online (Sandbox Code Playgroud)

如果有人想知道为什么我会这样做:

  • 用于记录(失败)语句
  • 有可能将其复制并粘贴到企业管理器以进行测试

c# vb.net ado.net

177
推荐指数
7
解决办法
15万
查看次数

标签 统计

ado.net ×1

c# ×1

pdo ×1

php ×1

security ×1

sql-injection ×1

vb.net ×1