php – 在论坛中逃避输入的正确/最安全的方法是什么?
我正在使用php和
mysql后端创建一个论坛软件,并想知道什么是最安全的方式来逃避论坛帖子的用户输入.
我知道htmlentities()和strip_tags()以及htmlspecialchars()和mysql_real_escape_string(),甚至javascript的escape()但我不知道使用哪个和哪里. 处理这三种不同类型输入的最安全方法是什么(通过进程,我的意思是获取,保存在数据库中,并显示): >帖子的标题(也将是URL永久链接的基础). 我希望得到一个答案,告诉我有多少这些逃逸功能需要组合使用以及为什么.
当生成HTLM输出时(就像你正在尝试编辑帖子时将数据输入到表单的字段中,或者如果你需要重新显示表单,因为用户忘记了一个字段),你就会可能使用
htmlspecialchars() :它将转义< ;,>,“,’和& – 取决于您提供的选项.
如果用户输入了一些标签,strip_tags将删除标签 – 而且您通常不希望用户键入的内容只是消失;-) 一旦您获得了用户在表单中输入的内容(即表单已提交),您需要在将其发送到数据库之前将其转义. 您可能还想查看准备好的语句,这可能对您有所帮助;-) 你不应该使用像addslashes这样的东西:它的转义不依赖于数据库引擎;使用适合您正在使用的引擎(MySQL,PostGreSQL,…)的函数更好/更安全:它将准确知道要逃脱的内容以及如何逃脱. 最后,要在页面内显示数据: >对于不能包含HTML的字段,您应该使用 >您可能想看看一个名为HTMLPUrifier的工具:它将允许您指定应该允许哪些标记和属性 – 并且它生成有效的HTML,这总是很好^^ 这些只是一些指示……希望他们帮助你:-)不要犹豫,问你是否有更准确的问题! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |