用户将在textarea中输入文本.然后将其直接插入MysqL数据库.我在它上面使用trim,htmlentities,mysql_real_escape_string,并启用了魔术引号.将数据输出回textarea时,我应该如何清理它?
谢谢你的帮助.我从来没有太确定这样做的正确方法……
保存时不应使用htmlentities.你应该在显示它时使用htmlentities.经验法则是在您需要之前不对数据进行编码/清理.如果你在保存时对它进行了很好的处理,那么当用户想要编辑输入时,你必须对文本执行html_entity_decode.因此,您需要消毒以满足您的需求,仅此而已.保存时,需要清理sql注入,所以你要MysqL_real_escape_string它.在显示时,您需要对XSS进行清理,因此您需要对其进行清理.
另外,我不确定你是否看过Darryl Hein的评论,但你真的不希望启用magic_quotes. They are a bad,bad,thing并且自PHP 5.3起已被弃用,并且将在PHP 6中完全消失.