Допустим, у меня есть Text
, это текстовое поле POST. В этой области я мог бы написать все, что хотел бы написать. Такие как XSS, SQL и другие возможные плохие коды. Для разметки я буду использовать BBCode, поэтому я хотел бы отобразить код, не заставляя его работать.
Единственное, чего я хочу избежать, так это того, что БД испорчена! Есть ли чрезвычайно безопасный способ сделать это?
Шаги, которые я на самом деле делаю:
Укажите тип содержимого и кодировку Content-Type: text/html; charset=UTF-8
Ограничить вход. Ex.: Max 500 characters
Использовать htmlentities () $GoodText = htmlentities($Text, ENT_QUOTES, "UTF-8");
Использовать mysql_real_escape_string () $GoodText = mysql_real_escape_string($GoodText);
Сохранить в БД $db->store($User, $GoodText);
Насколько я прочитал, шаги 3 и 4 совершенно одинаковы, но я бы хотел получить объяснение.
В любом случае, это рабочий метод?
Должен ли я также использовать токены для форм POST?