Mysqli - 参数化查询是否足以阻止XSS二阶攻击?

时间:2014-09-18 15:00:51

标签: mysqli prepared-statement xss sql-injection sql-parametrized-query

我正在研究动态应用程序,我不确定参数化查询是否对XSS,二阶攻击是安全的?你能帮助我吗?谢谢!

我以此代码为例:

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

    $stmt->bind_param('sssssss', $1, $2, $3, $4, $5, $6, $7);
    $stmt->execute();
    $stmt->close();

2 个答案:

答案 0 :(得分:0)

不。

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

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

答案 1 :(得分:0)

绝对没有。

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

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

Here是您需要打击的一些角落案例的简短列表。