安全表单输入需要哪些函数


Which functions are needed for secure form inputs?

在我的注册表单上,我有四个输入:

username  
password
email address
web address

无法确定所有可用的消毒方法中哪一个是真正需要的:

strip_tags()
substr()
mysql_real_escape_string()
trim()
htmlentities()
addslashes()
. . . (you may add more)

某个地方我发现一个函数是must have,某个地方这个函数被声明为deprecatedless valuable the another one ...

有没有人可以为以上四种输入创建一个优先级列表。

注:PDO - prepared statements已用于与数据库通信

一句话:

  1. 当你添加你的数据到数据库-使用PDO的预置语句与占位符。

  2. 当你从html页面的任何地方输出一些东西时-你需要执行htmlspecialchars($string, ENT_QUOTES, 'UTF-8');,其中$string是你想以"安全"的方式输出的字符串。

首先,您需要明确您想要消毒的内容。

因为你使用了所有准备好的语句,所以不需要:mysql_real_escape_string ()

如果你不想让你的用户使用html,为了避免XSS,你应该使用strip_tags ()

保护你的html显示不受不可打印字符的影响htmlentities ()但在UTF-8时代,它有点过时了。

可用于密码输入削减()因为如果您的用户复制带有前导/附加空格的密码,它会有所帮助。因为outlook添加了空格。但并不是每个人都认为这是一个好主意,以减少密码。

取决于你的模板系统,这可能是一个好主意addslashes ()对于像

这样的预定义输入值
<input type="text" value="<?php addslashes($value); ?>" />

因为可以这样做:

my value " /><script>evil things</script><

在自动完成表单中使用某种XSS