0
4

4 回答 4

3

不要担心自己尝试清理数据(即,此时您正尝试删除撇号...)以进行数据库插入。这是一个已解决的问题。

最好的解决方案是使用PDO数据库连接器通过准备好的查询插入数据。

根本不需要对插入进行验证/清理 - 当您允许时,您的数据库将正确存储所有数据。

如果你还在使用mysql_*函数,请不要。它们非常陈旧,很快就会被弃用,如果不小心使用,应用程序中会出现许多编程错误和漏洞利用。

是一个关于如何使用 PDO 的不错的教程。请记住,如果您正确地使用准备好的语句,您将无需担心消毒!您无需担心任何形式的撇号!PDO 连接器将为您完成!

于 2013-03-13T16:54:28.727 回答
0

如果您想阻止 XSS 攻击,请尝试filter_var 。

$essay=filter_var($essay, FILTER_SANITIZE_STRING);

如果您试图防止 sql 注入,请查找参数化查询。

于 2013-03-14T02:28:15.433 回答
0

虽然我不同意你对正确排版的危险仇杀,但我可以告诉你,你需要str_replace()为每一种不同类型的撇号式字符提供一个。str_replace()只需用你想要删除的每种撇号做一堆s 。

我仍然认为您试图通过避免而不是解决问题来解决问题。撇号完全可以放入 mysql 数据库中,它可能只需要具有不同的字符集或排序规则。

于 2013-03-13T16:58:11.983 回答
0

你消毒它干什么?

提交到数据库? real_escape_string()

将其返回到获取请求的 URL? htmlspecialchars()

您对其进行消毒的具体原因有助于我们找出最好的方法!

于 2013-03-13T16:50:08.253 回答