Как осуществить за@!#$у от хака?

dEn

Guest
Как осуществить за@!#$у от хака?

А какие надо ставить проверки на введённые данные в guest book'e? Ну там от тэгов, а ещё? И как это сделать правильнее?
 

OlEG

Guest
В общем случае можно сделать так:

$msg = nl2br(htmlspecialchars($msg));

где $msg - переменная сообщения, которое приходит из формы.
 

RomikChef

Guest
Интересно.

А зачем тебе функция fromhtml?
Я никак не могу придумать сучая, для которого она была бы нужна.
 

RomikChef

Guest
В общем-то может, и лучше...

во всяком случае -
 

RomikChef

Guest
но на практике...

пардон за двойной пост - энтер случано нажался.
Так вот:
nl2br. Зачем делать это перед положением в базу - для меня величайшая загадка. Я уж не говорю о том, что данные могут выводиться не в хтмл, а снова в форму для редактирования. или в письмо. или еще бог знает куда. И в этом случае <бр>ы будут откровенно лишними. Но даже и просто в базу класть их - зачем?

htmlspecialchars. Дефолтная функция не годится. ибо заменяет совершенно невинные символы навроде амперсанда. И если у вас есть гиперссылка с переменными, то она будет безнадежно испорчена.

Мне кажется, что замены теговых скобок будет более чем достаточно.И опять же - зачем это делать перед помещением в базу данных? Только место занимать.

В общем, я думаю, что принятым данным достаточно сделать addslashes (если РНР сам не делает) и записать в базу.
а для выдачи HTML я бы немного изменил кириллову функцию
function tohtml($string)
{
$string = str_replace("<", "<", $string);
$string = str_replace(">", ">", $string);
$string = str_replace('"', """, $string);
return nl2br($string);
}
 

dEn

Guest
Cпасибо! А ещё... про post и get

Что лучще пост или гет? А одинарные кавычки заменять не надо?
 

dEn

Guest
И ещё не совсем про php

Как адать макс. кол-во вводимых символов в textarea?
 

RomikChef

Guest
не понял.

что значит - "автоматически конвертируются"?
Кем конвертируются? Зачем?
может, у меня веб-сервер другой, но ничего он не конвертирует. Что приходит - то в РНР и попадает без изменений. Вот я и удивился.
 

RomikChef

Guest
Cпасибо! А ещё... про post и get

Для гостевой лучше пост.
одинарные надо заменять, если ты их используешь в HTML.
 

RomikChef

Guest
Интересно, а еще у кого-нибудь такой феномен встречается?
 

si

Administrator
<?
if (isset($text)) echo $text;
echo "<br>";
if (isset($textarea)) echo $textarea;
?>
<form method="POST" action="post.php">
<input type=text name="text"><br>
<textarea name="textarea">
</textarea><br>
<input type="submit">
</form>

Вводим: <>&
Результат: <>&

Чего и следовало ожидать. Скорее всего товарищ kirill сам их где-то кодирует.
 
Сверху