FILTER_SANITIZE_STRING是否足以避免SQL注入和XSS攻击?

时间:2011-06-15 08:40:17

标签: php security xss sql-injection

我正在使用带有SQLite 3 class的PHP 5,我想知道使用带有FILTER_SANITIZE_STRING标志的PHP built-in data filtering函数是否足以阻止SQL注入和XSS攻击。

我知道我可以去抓一个大的丑陋的PHP类来过滤所有内容,但我喜欢让我的代码保持干净,尽可能短。

请告知。

5 个答案:

答案 0 :(得分:2)

SQLite3类允许您prepare statements并将值绑定到它们。这将是您的数据库查询的正确工具。

至于XSS,这与您使用SQLite完全无关。

答案 1 :(得分:1)

对XSS和SQLI使用相同的清理功能永远不明智。对于XSS,您可以使用htmlentities在输出到HTML之前过滤用户输入。对于SQLite上的SQLI,您可以使用预处理语句(更好)或使用escapeString在使用它们构造SQL查询之前过滤用户输入。

答案 2 :(得分:0)

我认为它足以保护您的字符串数据输入,但您可以选择许多其他选项。例如其他库会增加您的应用程序处理时间,但会帮助您处理/解析其他类型的数据。

答案 3 :(得分:0)

如果你不相信自己对安全问题的理解足以提出这个问题,你怎么能相信这里有人给你一个好的答案呢?

如果您迟早要删除不需要的字符,那么您将要删除用户想要输入的字符。最好对使用数据的特定上下文进行编码。

签出OWASP ESAPI,它包含大量编码功能。如果您不想使用大型库,请查看函数的功能并将相关部分复制到代码库中。

答案 4 :(得分:0)

如果你只是想构建一个简单的表单并且不想引入任何繁重甚至轻量级的框架,那么请使用php过滤器+并使用PDO作为数据库。除了跨站点请求伪造,这应该保护您免受一切。