这对PHP中的用户输入是否足够安全

jos*_*krz 1 php mysql security escaping input

可能重复:
最终的清洁/安全功能

在阅读了PHP安全性之后,我觉得我编码的任何东西都是不安全的.因此,为了解决用户输入的安全问题,我创建了一个函数,允许我在任何使用情况下转义并删除用户输入.

我想知道这实际上是否安全,如果我能使它更安全.这会阻止什么样的攻击?从我可以通过使用_GET告诉XSS,HTML输入和MYSQL注入将被阻止?

function _INPUT($name,$tag,$sql,$url)
{
if ($_SERVER['REQUEST_METHOD'] == 'GET')
    $filter = ($_GET[$name]);//Assign GET to filter variable

    if ($tag == true)//Remove all HTML, PHP and JAVASCRIPT tags
    {
        $filter = strip_tags($filter);
    }
    if ($sql == true)//If MYSQL escaping is enabled
    {
        $filter = mysql_real_escape_string($filter);
    }
    if ($url == true)//If URL encoding is enabled
    {
        $filter = urlencode($filter);
    }
    return $filter;     

}

$output = _INPUT('name',true,true,true);
Run Code Online (Sandbox Code Playgroud)

我也将使用MYSQL的预处理语句,虽然我需要更多地阅读它们以完全理解它如何防止注入.

感谢您的时间.

Bra*_*rad 6

再一次,没有通用的逃避功能,只是神奇地使事情"安全".

请参阅:https: //stackoverflow.com/a/7810880/362536

不同的逃避方法用于不同的事情.您不能通过一堆应该在特定上下文中使用的函数来运行一堆数据.您正在创建垃圾数据,并且不会比您首先使用原始用户数据更安全.