用户将在textarea中输入文本.然后将其直接插入mySQL数据库.我在它上面使用trim,htmlentities,mysql_real_escape_string,并启用了魔术引号.将数据输出回textarea时,我应该如何清理它?
谢谢你的帮助.我从来没有太确定这样做的正确方法......
htmlentities
保存时不应使用.您应该htmlentities
在显示它时使用.经验法则是在您需要之前不对数据进行编码/清理.如果您htmlentities
在保存时执行此操作html_entity_decode
,则在用户想要编辑输入时必须对文本执行此操作.所以你要消毒你需要的东西,仅此而已.保存它时,您需要清理SQL注入,这样你mysql_real_escape_string
就可以了.在显示时,您需要对XSS进行清理,这样您htmlentities
就可以了.
另外,我不确定你是否看过Darryl Hein的评论,但你真的不想启用magic_quotes.它们是一个坏的,坏的东西,并且从PHP 5.3开始被弃用,并且将在PHP 6中完全消失.