2012-04-12 57 views
0

我正在创建一个验证用户输入的文本的函数。由于我对输入文本有各种用途,我希望该功能能够覆盖尽可能多的区域,以便让用户在网站的任何部分输入文字时的安全考虑。我目前使用各种代码验证所需的各种输入,并试图将其安全部分整合到一个函数中,并将正则表达式(电子邮件,电话,密码验证)整合到可在整个网站中使用的另一个函数中。PHP输入验证 - 需要注意的事项?

我有一个问题与此有关。

我使用过滤此位以清理检查数据库对信息输入时,用户输入:

$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>'; 
     } 

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

另外还有什么其他的事情我应该关注一般关于我想要放在一起的功能?

来覆盖这将是巨大的一些好的教程的任何链接太:)

谢谢!

+1

我想你会遇到一些问题寻找所有可能的脚本标签因为有一堆方法来尝试和执行js。 http://ha.ckers.org/xss.html为您提供了一些很好的示例,说明您可以尝试使用哪种方式攻击网站。 – lfxgroove 2012-04-12 10:00:57

+1

一般来说,我不会把'你的IP已被记录'的消息放在一个Web应用程序中。将“脚本”标记插入到页面变量中的人可能不是黑客(例如,他们可能会跟踪恶意链接)。通过一切手段记录他们的IP,但只是抛出一个不错的404或重定向到您的主页。 – halfer 2012-04-12 10:01:54

+0

@Anton非常感谢您的链接:) – 2012-04-12 10:26:39

回答

3

PHP确实有过滤和内置的验证,读http://php.net/manual/en/book.filter.php 您也可以考虑HTMLpurifier或整洁,如果你想自定义过滤器的HTML内容

+0

谢谢我没有意识到这两个选项,我会看看他们。 – 2012-04-12 10:27:19