Nig*_*awk 5 html php mysql forms input
我在这里阅读了很多关于过滤用户输入的问答,但大多数时候答案是它取决于你在做什么.这是我正在做的事情:
通过将在MySQL查询中使用的表单提交的数据:
function clean($field, $link)
{
return mysql_real_escape_string($field, $link);
}
Run Code Online (Sandbox Code Playgroud)
通过表格提交的数据将显示在HTML/PHP页面或电子邮件中:
function output_html($value)
{
return stripslashes(htmlspecialchars($value));
}
Run Code Online (Sandbox Code Playgroud)
从数据库显示的数据:
function output_db($value)
{
return stripslashes($value);
}
Run Code Online (Sandbox Code Playgroud)
这是否足以满足我的需求?有什么我不考虑的吗?
谢谢!
使用mysql_real_escape_string()将字符串转换为SQL查询,无论输入来自时.
无论输入来自何处,都可以使用htmlspecialchars()或htmlentities()在将字符串插入HTML代码时使用.
使用urlencode()值插入一个URL,无论身在何处值来自查询字符串的时候.
如果这些数据来自用户,那么你肯定应该做这些事情,因为用户有可能尝试做坏事.但是除了安全性之外 - 如果你想将一个合法的字符串插入一个SQL查询并且该字符串碰巧只有一个单引号字符怎么办?你仍然必须逃脱它.