0

我正在开发一个动态应用程序,我不确定参数化查询是否可以免受 XSS、二阶攻击?你能帮助我吗?谢谢!

我以这段代码为例:

  $stmt = $mysqli->prepare("INSERT INTO tb (1, 2, 3, 4, 5, 6, 7) 值 (?, ?, ?, ?, ?, ?, ?)");

    $stmt->bind_param('sssssss', $1, $2, $3, $4, $5, $6, $7);
    $stmt->执行();
    $stmt->关闭();
4

2 回答 2

0

当然不。

请不要自行实施 XSS 用户清理。

请为此使用专门的单独库。你永远无法抓住所有的极端情况。

以下是您需要应对的一些极端案例的简短列表。

于 2014-09-20T13:41:26.703 回答
0

没有。

参数化查询可防止 SQL 注入;也就是说,它确保查询参数在 SQL 后端处理之前格式正确并正确转义。

XSS 是一类不同的问题,输入应该被 HTML 标记清除;鉴于正确参数化的 SQL 值仍然可以包含标记,您需要额外的编码(例如htmlspecialchars())。

于 2014-09-18T15:09:42.857 回答