Comprehensive Security Against User Input - PHP, MySQL
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
What's the best method for sanitizing user input with PHP?
What are the best PHP input sanitizing functions?
The ultimate clean/secure function
目标:在进入DB之前正确清理文本框中的所有输入,然后输出到页面。 对于我的用例,我需要在不消除数据输入的同时防止潜在的问题。 此外,在HTTP标头和META标记中,字符集显式设置为UTF-8,以防止格式错误的编码出现问题。 DB也设置为UTF-8。
规格:PHP,MySQL,Apache
示例代码:
1 2 3 4 5 6 7 8 | function secureinput($input) { $input = htmlspecialchars($input, ENT_QUOTES ,'UTF-8'); $input = strip_tags($input); //fail-safe for anything that gets through $input = mysql_real_escape_string($input); return $input; } |
问题:攻击的哪些向量(XSS,SQL注入等)仍然容易受到攻击?
非常感谢任何可以提供帮助的人。 这是我第一次发帖,虽然我总是先找SO来查找我的问题的答案。 不幸的是,这次我找不到任何其他问题来解决我的问题,只有一小部分问题。
XSS攻击
通过在输出用户输入的内容时使用htmlspecialchars(),您可以确保您免受XSS攻击。
SQL注入
Steve Friedl在他的网站上提供了一些SQL注入和输入清理限制的例子:http://www.unixwiz.net/techtips/sql-injection.html
尽管使用mysql_real_escape_string()可以保护您的代码免受SQL注入攻击,但最好还是使用参数化SQL并完全消除SQL注入的风险。 如果在PHP中使用PDO或mysqli而不是弃用的mysql函数,那么您也会更加安全。