【发布时间】:2012-07-27 02:29:45
【问题描述】:
可能重复:
What's the best method for sanitizing user input with PHP?
What are the best PHP input sanitizing functions?
The ultimate clean/secure function
目标:在进入数据库之前正确清理来自文本框的所有输入,然后将其输出到页面。对于我的用例,我需要在不消除数据输入的情况下防止潜在问题。此外,字符集在 HTTP 标头和 META 标记中都明确设置为 UTF-8,以防止出现格式错误的编码问题。数据库也设置为 UTF-8。
规格:PHP、MySQL、Apache
示例代码:
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 来查找我的问题的答案。不幸的是,这一次我找不到任何其他问题可以回答我的问题,只有一小部分。
【问题讨论】:
-
要将安全提升到一个新的水平,开始使用 PDO(或 mysqli)代替 mysql_* 函数。 ;)
-
你也应该使用parameterized SQL来100%消除SQL注入的风险。
-
没有神奇的一次性安全/清理功能。这一切都取决于上下文。你那里的东西都是废话。
-
这个问题被问了一遍又一遍:stackoverflow.com/q/129677/112968
-
我会从框架或库中选择现成的解决方案,而不是从头开始构建解决方案。代码中总会有安全漏洞..
标签: php security xss code-injection sanitize