【问题标题】:PHP Input Validation - Things to be aware of?PHP 输入验证 - 需要注意的事项?
【发布时间】:2012-04-12 09:57:13
【问题描述】:

我正在创建一个验证用户输入的文本的函数。由于我对输入文本有多种用途,因此我希望该功能能够涵盖尽可能多的领域,以考虑让用户在网站的任何部分输入文本的安全问题。我目前使用各种代码来根据需要验证各种输入,并试图将其安全部分整合到一个函数中,并将正则表达式(电子邮件、电话、密码验证)整合到另一个可以在整个网站上使用的函数中。

我有一个与此相关的问题。

在根据数据库中的信息检查输入时,我使用这一位过滤来清理用户输入:

$find = strtoupper($find); 
$find = strip_tags($find); 
$find = trim ($find);
$_SESSION['find'] = $find;
$keywords_array = explode(' ', $find);

如果我使用strip_tags,在上面应用的过滤之前验证这样的输入是否有意义:

if (preg_match("#\bscript\b#",$_POST['search']))
        {
            // Get user ip
            // Log client details to DB
            $GLOBALS['errorFocus'] = "autofocus class='thisInputIsError'";
            $GLOBALS['searchError'] = '<p>Your IP has been logged!</p>';
        }

如果是这样,我应该注意哪些其他标签?

关于我尝试组合的功能,我还应该注意哪些其他事项?

任何涵盖此内容的 GOOD 教程的链接也很棒 :)

谢谢!

【问题讨论】:

  • 我认为你在寻找所有可能的脚本标签变体时会遇到一些问题,因为有很多方法可以尝试和执行 js。 ha.ckers.org/xss.html 为您提供了一些可以用来攻击网站的好例子。
  • 一般来说,我不会将“您的 IP 已被记录”消息放在 Web 应用程序中。将script 标记插入页面变量的人可能不是黑客(例如,他们可能正在跟踪恶意链接)。一定要记录他们的 IP,但只需抛出一个漂亮的 404 或重定向到您的主页。
  • @Anton 非常感谢您的链接 :)

标签: php validation input


【解决方案1】:

php 确实内置了过滤和验证,请阅读http://php.net/manual/en/book.filter.php 如果你想要自定义过滤 HTML 内容,你也可以考虑 HTMLpurifier 或 tidy

【讨论】:

  • 谢谢我不知道这两个选项,我会看看他们。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多