使用 PHP,避免注入攻击,将特殊字符(如以下所示)存储在 MSQUL 数据库中的最佳方法是什么。
« " ' é à ù
这是我现在的做法:
$book_text=$_POST['book_text'];
$book_text=htmlentities($book_text, "ENT_QUOTES");
$query=//DB query to insert the text
然后:
$query=//DB query to select the text
$fetch=//The fetch of $book_text
$book_text=html_entity_decode($book_text);
通过这种方式,我所有的文本都被格式化为HTML实体。但我认为这占用了很多数据库空间。那么,有更好的方法吗?
"ENT_QUOTES"
需要是ENT_QUOTES
(没有引号),因为它是PHP预定义常量。我认为你可以原样将其放置在数据库中,当你想要输出时使用htmlentities
。 - Wouter J