过滤用户输入

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)

这是否足以满足我的需求?有什么我不考虑的吗?

谢谢!

Mic*_*ael 6

使用mysql_real_escape_string()将字符串转换为SQL查询,无论输入来自时.

无论输入来自何处,都可以使用htmlspecialchars()htmlentities()在将字符串插入HTML代码时使用.

使用urlencode()值插入一个URL,无论身在何处值来自查询字符串的时候.

如果这些数据来自用户,那么你肯定应该做这些事情,因为用户有可能尝试做坏事.但是除了安全性之外 - 如果你想将一个合法的字符串插入一个SQL查询并且该字符串碰巧只有一个单引号字符怎么办?你仍然必须逃脱它.