【发布时间】:2016-10-19 21:29:51
【问题描述】:
我在下面使用此代码,但字符“&”不会插入到数据库中,当我从其他页面复制/粘贴一些文本并将其放入数据库时,文本会在例如中间结束文本,不知道为什么,我也尝试过 addlashes() 和 htmlspecialchars() 或 htmlentities()。
我读到 mysqli_real_escape_string() 是针对 SQL 注入攻击和针对 XSS 附加的 htmlspecialchars(),我是否也应该将它们结合起来?
$beschreibung = mysqli_real_escape_string($db, $_POST['beschreibung']);
【问题讨论】:
-
“未插入”如何?如果它存在,你会得到一个错误?它变成了其他字符?不,escape_string 不足以防止所有形式的 sql 注入,而且 htmlspecialchars 与 sql 完全没有关系
-
您不想将“&”存储在数据库中,或者您想知道如何保护您的脚本免受 sql 注入或 xss 的影响
-
@MarcB 我的猜测是查询字符串在预期之前被终止。也就是说,当
&符号弹出时,它不会被视为字符串,而是and的命令 -
当然,我想把像 thomsen & thomsen 这样的公司名称放入数据库