Как отфильтровать символы HTML, чтобы пользователь не мог связываться с сайтом? PHP - PullRequest
0 голосов
/ 20 декабря 2011

Когда я получаю текст из базы данных, он может содержать такие вещи, как <h1> <div> и т.д.

Я пытался применить этот метод: http://www.w3schools.com/php/filter_sanitize_special_chars.asp

Вот то, что у меня сейчас, но оно не работает.

            $story_title = $row["st_title"]; // Gathered from Database
            filter_var($story_title,FILTER_SANITIZE_SPECIAL_CHARS);
            $story_category = $row["st_category"]; // Gathered from Database
            filter_var($story_category,FILTER_SANITIZE_SPECIAL_CHARS);
            $the_story = $row["st_body"]; // Gathered from Database
            filter_var($story_body,FILTER_SANITIZE_SPECIAL_CHARS);

Может кто-нибудь предложить решение, которое будет работать?

Ответы [ 2 ]

1 голос
/ 20 декабря 2011

Если вы хотите удалить HTML-теги, вы можете использовать встроенную функцию strip_tags ()

Пример:

$userdata = "<h1>This is a title <a href=\"http://www.example.com\">and a link</a> </h1>";
echo strip_tags($userdata);
// will echo "This is a title and a link";

Вы можете разрешить некоторые теги, если хотите:

$userdata = "<h1>This is a title <a href=\"http://www.example.com\">and a link</a> </h1>";
echo strip_tags($userdata,"<a>");
// will echo "This is a title and <a href=\"http://www.example.com\">and a link</a>";
// the anchor tag is not removed
0 голосов
/ 20 декабря 2011

Существует множество подходов к этому.

Я бы предложил не изобретать велосипед и использовать что-то вроде HTML Purifier , который является совместимой со стандартами системой фильтрации с открытым исходным кодом, которая позволяетВы делаете мощные и высоко настраиваемые фильтры, также защищающие от XSS-атак.Он имеет белые и черные списки, чтобы вы могли определить, что пользователю разрешено использовать, а что нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...