$result = mysql_query ("SELECT `id`,`name`,`text` FROM `data`", $db);
while ($myrow = mysql_fetch_assoc($result))
{
$id = htmlspecialchars($myrow["id"]);
echo
'
'. htmlspecialchars($myrow["name"]) .'
/* Сюда надо вставить код */
'. htmlspecialchars($myrow["text"]) .'
';
}
Код:
if (!isset($_COOKIE[$id]))
{
echo
'<ol class="info">
<li><a href="info.php?id='. $id .'"></a></li>
</ol>';
}
Спустя 4 минуты, 27 секунд (10.01.2012 - 00:19) xJlaIIax написал(а):
Я сделал так:
Правильно или есть какой то более лучший вариант?
$result = mysql_query ("SELECT `id`,`name`,`text` FROM `data`", $db);
while ($myrow = mysql_fetch_assoc($result))
{
$id = htmlspecialchars($myrow["id"]);
echo
''. htmlspecialchars($myrow["name"]) .'';
if (!isset($_COOKIE[$id]))
{
echo
'<ol class="info">
<li><a href="info.php?id='. $id .'"></a></li>
</ol>';
}
echo ''. htmlspecialchars($myrow["text"]) .'';
}
Правильно или есть какой то более лучший вариант?
Спустя 49 минут, 10 секунд (10.01.2012 - 01:08) inpost написал(а):
Какой тип данных хранится в ID? Возможно ли попадание внутрь другого типа? Что делает обработка htmlspecialchars... сиди и разбирайся, а не лепи что попало!
Спустя 1 час, 11 минут, 26 секунд (10.01.2012 - 02:20) xJlaIIax написал(а):
В ID хранится только число.
Обработку htmlspecialchars применял исходя из статьи(в самом низу).
Обработку htmlspecialchars применял исходя из статьи(в самом низу).
Спустя 7 часов, 55 минут, 46 секунд (10.01.2012 - 10:15) nugle написал(а):
xJlaIIax
htmlspecialchars нужно использовать при занесении в базу, а вообще читаем это
http://php.su/functions/?f=htmlspecialchars&choice=info
htmlspecialchars нужно использовать при занесении в базу, а вообще читаем это
http://php.su/functions/?f=htmlspecialchars&choice=info
Спустя 4 минуты, 41 секунда (10.01.2012 - 10:20) Nikitian написал(а):
Цитата (nugle @ 10.01.2012 - 10:15) |
htmlspecialchars нужно использовать при занесении в базу |
Не нужно. При занесении в бд нуно использовать mysql_real_escape_string() и только.
Спустя 48 секунд (10.01.2012 - 10:21) nugle написал(а):
Nikitian
извиняюсь, перепутал
извиняюсь, перепутал
Спустя 13 часов, 13 минут, 45 секунд (10.01.2012 - 23:35) xJlaIIax написал(а):
То есть htmlspecialchars нужно везде убрать там где происходит вывод данных из базы и можно использовать например при выводе комментариев?
Но зачем тогда в той статье порекомендовали всегда использовать эту функцию при выводе данных?
Но зачем тогда в той статье порекомендовали всегда использовать эту функцию при выводе данных?
Спустя 1 час, 26 минут, 27 секунд (11.01.2012 - 01:01) nugle написал(а):
Нужно использовать там, куда могут проникнуть хакеры
Спустя 2 минуты, 29 секунд (11.01.2012 - 01:04) inpost написал(а):
xJlaIIax
Давай думать начнём. ID содержит число, и только число.
Где у нас может быть вредоносный скрипт, который нужно обработать? Для примера приведу текст:
Теперь думаем, где может вывестись этот текст, вот там и обрабатываем.
И правило №2: вывести не ты или админ, а человек из-вне.
Давай думать начнём. ID содержит число, и только число.
Где у нас может быть вредоносный скрипт, который нужно обработать? Для примера приведу текст:
<script>alert('HAHAHA');</script>
Теперь думаем, где может вывестись этот текст, вот там и обрабатываем.
И правило №2: вывести не ты или админ, а человек из-вне.
Спустя 1 час, 45 минут, 39 секунд (11.01.2012 - 02:49) xJlaIIax написал(а):
Почему ID может содержать не только число?
Значение для переменной ID берётся из базы, а в базе хранится только число.
Этот текст может вывести при отображении комментариев, так же скрипт может попасть с адресной строки с переменными.
Я до конца так и не понял почему он этой функцией обрабатывал при выводе данных в дискрипшине, в тайтле, при выводе поля text и т.д.
Значение для переменной ID берётся из базы, а в базе хранится только число.
Этот текст может вывести при отображении комментариев, так же скрипт может попасть с адресной строки с переменными.
Я до конца так и не понял почему он этой функцией обрабатывал при выводе данных в дискрипшине, в тайтле, при выводе поля text и т.д.
Спустя 15 минут, 42 секунды (11.01.2012 - 03:05) inpost написал(а):
А ты без обработки занеси туда код следующего содержания:
"><script>alert('YO_HO_HO');</script>
И убедишься, зачем делать надо.
"><script>alert('YO_HO_HO');</script>
И убедишься, зачем делать надо.
Спустя 1 минута, 13 секунд (11.01.2012 - 03:06) inpost написал(а):
А ещё лучше, сделай свой сайт с формой для комментариев и не обработай её htmlspecialchars, итого я тебя ОЧЕНЬ быстро научу всё же использовать её Особенно когда на твоём сайте появится гейское порно!
П.С. Теперь нас поисковики будут находить по такому ключевому слову! )
П.С. Теперь нас поисковики будут находить по такому ключевому слову! )
Спустя 12 минут, 48 секунд (11.01.2012 - 03:19) xJlaIIax написал(а):
Цитата (inpost @ 11.01.2012 - 00:06) |
А ещё лучше, сделай свой сайт с формой для комментариев и не обработай её htmlspecialchars, итого я тебя ОЧЕНЬ быстро научу всё же использовать её Особенно когда на твоём сайте появится гейское порно! П.С. Теперь нас поисковики будут находить по такому ключевому слову! ) |
Ну это понятно, через эту форму может попасть скрипт в таблицу comments в столбец text.
А как он попадёт допустим в тайтл?
Кроме админов туда никто текст не напишет.
Спустя 4 минуты, 36 секунд (11.01.2012 - 03:24) inpost написал(а):
xJlaIIax
Читай то, что я выше написал по этому поводу.
И админы часто сами кавычки ставят.
Напиши для тайтлов:
Фирма "Наши креведки" >>> у нас лучшие цены
Читай то, что я выше написал по этому поводу.
И админы часто сами кавычки ставят.
Напиши для тайтлов:
Фирма "Наши креведки" >>> у нас лучшие цены
Спустя 2 минуты, 59 секунд (11.01.2012 - 03:27) xJlaIIax написал(а):
inpost, из этого следует вывод, что всегда при выводе данных из базы нужно обрабатывать функцией htmlspecialchars?
Спустя 3 минуты, 57 секунд (11.01.2012 - 03:31) inpost написал(а):
Нет. Наша песня хороша, начинай сначала!
"Какой тип данных хранится в ID? Возможно ли попадание внутрь другого типа? Что делает обработка htmlspecialchars... сиди и разбирайся, а не лепи что попало!"
"Какой тип данных хранится в ID? Возможно ли попадание внутрь другого типа? Что делает обработка htmlspecialchars... сиди и разбирайся, а не лепи что попало!"
Спустя 11 минут, 17 секунд (11.01.2012 - 03:42) xJlaIIax написал(а):
inpost, понял.
Обрабатывать переменную ID функцией htmlspecialchars нет смысла, так как там хранится только число и другие символы туда никак не попадут.
Потому что данные для переменной ID выбираются из таблицы data из столбца id, а у этого столбца стоит первичный ключ и автоинкремент.
Правильно?
Обрабатывать переменную ID функцией htmlspecialchars нет смысла, так как там хранится только число и другие символы туда никак не попадут.
Потому что данные для переменной ID выбираются из таблицы data из столбца id, а у этого столбца стоит первичный ключ и автоинкремент.
Правильно?
Спустя 11 минут, 5 секунд (11.01.2012 - 03:53) inpost написал(а):
первичный ключ может стоять и текстового поля. Надо смотреть на ТИП, а у id тип: (int) <- integer <- число
Спустя 18 минут, 53 секунды (11.01.2012 - 04:12) xJlaIIax написал(а):
inpost, при выводе данных со столбцов с типом int обработку htmlspecialchars нет смысла использовать.
А вот при выводе данных например со столбцов типов varchar, text нужно использовать всегда.
Спасибо, запомню!(+)
А вот при выводе данных например со столбцов типов varchar, text нужно использовать всегда.
Спасибо, запомню!(+)
Спустя 1 минута, 42 секунды (11.01.2012 - 04:13) inpost написал(а):
xJlaIIax
Кроме тех случаев, когда тебе не надо обрабатывать Допустим введённая админом верстка страницы/текста/статики.
Кроме тех случаев, когда тебе не надо обрабатывать Допустим введённая админом верстка страницы/текста/статики.
Спустя 6 минут, 55 секунд (11.01.2012 - 04:20) xJlaIIax написал(а):
inpost, да, а то код работать не будет.
Завтра во всех местах буду исправлять, убирать бессмысленную обработку числа htmlspecialchars.
Ещё раз Спасибо!
Завтра во всех местах буду исправлять, убирать бессмысленную обработку числа htmlspecialchars.
Ещё раз Спасибо!