[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Безопасно ли выводить html php код в <textarea>
Xes
Делаю для себя небольшую админку для сайта чтобы не лазить в ПМА
у меня будет отображаться информация из БД, какая там инфа я не знаю например коментарий.
Коментарий можно добавть с любыми тегами в базу данных, но опубликован он будет когда я поставлю галочку в записи Проверено.

В админке я текст этого коментария вывожу в <textarea> Сюда!!! </textarea>я так понимаю для безопасности мне необходимо на всякий случай в выводимом текста удалить тег </textarea> если он там есть, вдруг его кто то написал, тогда текст после, может интерпритивараться уже черт знает как.

Достаточно ли для безопасности этого, т.е. чтобы неисполнить какойнибуть злобный код? А там я уже могу атредактировать комент и поставить галочку ОК, допустимо к выводу.



Спустя 9 минут, 7 секунд (1.05.2011 - 16:26) Guest написал(а):
htmlspecialchars('data from database')

Спустя 22 минуты, 7 секунд (1.05.2011 - 16:48) Xes написал(а):
Я незнаю по каким причинам но эта функция у меня не работает. Она гденибуть отключаеться? Ну и обратная ей тоже которая декодирует....
Это кнечно первое что в голову пришло их юзать. Но как их включить?

Спустя 40 минут, 38 секунд (1.05.2011 - 17:29) walerus написал(а):
Не может такого быть, какие ошибки выдает скрипт при использовании htmlspecialchars ?

Спустя 4 минуты, 45 секунд (1.05.2011 - 17:34) sebastjan написал(а):
я бы добавил вот ещё что, при записи с БД использовать mysql_real_escape_string

Спустя 24 минуты, 53 секунды (1.05.2011 - 17:59) Xes написал(а):
<?php
error_reporting(E_ALL);

// Данные для mysql сервера
$dbhost = 'localhost'; // Хост
$dbuser = 'admin'; // Имя пользователя
$dbpassword = '123'; // Пароль
$dbname = 'listhotel'; // Имя базы данных
// Подключаемся к mysql серверу

$db = @mysql_connect($dbhost, $dbuser, $dbpassword);

// Выбираем нашу базу данных
@mysql_select_db($dbname, $db);
// Параметры обмена, конвертации данных
@mysql_query("SET CHARACTER SET 'utf8'");
@mysql_query("set collation_connection='utf8_general_ci'");

$new1='<a href="Привет Тут текст C:/ g[g % & "</a> Ntrnc <br><b>nnnn</b>';
$new = htmlspecialchars($new1);
echo $new;
?>

Выводит тоже самое что в $new1.

Спустя 39 минут, 10 секунд (1.05.2011 - 18:38) Guest написал(а):
Из консоли или через браузер?

Спустя 25 минут, 32 секунды (1.05.2011 - 19:03) Xes написал(а):
код в бразуере на локалке

Спустя 54 минуты, 58 секунд (1.05.2011 - 19:58) sebastjan написал(а):
Конструкция полностью рабочая , поверил.
$new1='<a href="Привет Тут текст C:/ g[g % & "</a> Ntrnc <br><b>nnnn</b>';
$new = htmlspecialchars($new1);
echo $new;

Xes htmlspecialchars($new1); работает.

Спустя 1 минута, 2 секунды (1.05.2011 - 19:59) walerus написал(а):
Смотрим не по визуальному результату, по КОДУ страницы

визуальный результат
<a href="Привет Тут текст C:/ g[g % & "</a> Ntrnc <br><b>nnnn</b>


код страницы
Цитата
&lt;a href=&quot;Привет Тут текст C:/ g[g % &amp; &quot;&lt;/a&gt; Ntrnc &lt;br&gt;&lt;b&gt;nnnn&lt;/b&gt;


Зацитировал, т.к. броузер преобразует в нормальный вид :rolleyes:

Так вот, разницу видно ?

Спустя 6 минут, 32 секунды (1.05.2011 - 20:06) sebastjan написал(а):
Дело в том что фукция htmlspecialchars выведет в тектовом режиме хтмл код,
она и выводит
<a href="Привет Тут текст C:/ g[g % & "</a> Ntrnc <br><b>nnnn</b>

а по логике наверное надо только данные из базы преобразовать безопастно.

Спустя 41 минута, 3 секунды (1.05.2011 - 20:47) Xes написал(а):
ок спасибо, и правда в БД заглянул а там после htmlspecialchars метасимволы. И выводиться потом все нерабочим кодом.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.