我很惊讶我无法找到我需要从邮件中删除哪些字符以保证我的应用程序安全。
我有一个php应用程序,大多数输入是数字的,但我添加了用户附加消息的能力,所以我需要清理消息并删除任何可能是威胁的字符。
我最初的反应是,如果我做了
$message=addslashes(preg_replace('/[^a-zA-Z0-9\-,& $%\(\)#@!\'\"?.]/','',$_POST['message']));
我会安全,但我找不到任何可以说明哪些角色可能会造成伤害的东西,以及哪些角色是安全的。
答案 0 :(得分:1)
答案 1 :(得分:1)
我会说你不必从输入中删除任何字符,至少一般来说。
相反,您必须逃避您的数据:
尽管如此,如果您允许用户输入HTML,您应该查看HTMLPurifier,以确保他们无法将任何恶意HTML代码注入您的网页:
HTML Purifier符合标准 用PHP编写的HTML过滤器库。 HTML Purifier不仅会删除所有内容 恶意代码(俗称为 XSS)具有经过全面审核,安全且宽容的白名单,它 还将确保您的文件 符合标准
答案 2 :(得分:0)
只需使用Prepared Statements进行数据库交互,而不是清理数据。 PDO消除了自己手动输入所有输入的需要。