之前,我使用方法htmlspecialchars($x)
来阻止HTML标记和文本字段上的一些SQLi。但是我注意到它不是阻止它的最好方法,因为单引号“'()占用了数据库的一些空间。另外,对于最大长度。例如,在文本字段上,我把最大值 - 长度为1000个字符。但如果人们使用simbols直到最大长度(1000个字符),用户将遇到一些麻烦,因为我在服务器上验证它。
实施例: 用户输入1000个字符,他不能再输入了。大约30个字符是符号。因此,在验证时,它将显示超过1000个字符,并且不会对其进行验证。
我清楚了吗?我怎么能阻止这两个问题?
先谢谢。
答案 0 :(得分:3)
假设“SQLi”是“SQL注入”,那么htmlspecialchars
将无法保护您免受所有中的查询。 htmlspecialchars
只应用于显示。您需要正确地参数化您的查询,以便为存储对输入进行适当的清理。
htmlspecialchars
醇>
答案 1 :(得分:0)
您还可以使用htmlspecialchars()来存储数据,也可以像Google+一样。尝试使用移动设备https://plus.google.com/app/basic/s?q=Developing+%22Web%22+Sites在移动设备中查看此内容并向下滚动。有一个实体名称,如& amp; amp; amp; amp; amp; amp; amp; amp; amp;你也可以使用< meta charset =" ISO-8859-1">作为您网站的字符集,以避免HTML标记注释,例如< / div>,破坏您的样式。也许你的网站很容易受到XSS的攻击。所以,使用htmlspecialchars()来存储数据!并且是一个真正的编码器,总是使用mysql_real_escape_string()检查MySQL输入以避免续集注入攻击。请查看以下内容:http://evilzone.org/tutorials/sql-injection/和www.w3schools.com/php/func_mysql_real_escape_string.asp