чем обработать <textarea> чтобы добавить в БД

Статус
В этой теме нельзя размещать новые ответы.

ghostik32

Создатель
Регистрация
26 Янв 2010
Сообщения
40
Реакции
1
HTML:
<textarea name="podrobnosti_upakovki" id="comment1" style="width:400px; height:100px;" class="inp"></textarea>
чем её обработать чтобы не поймать иньекцию какую-нибуть.
обрабатываю mysql_real_escape_string, но там слэши добавляет.
желательно в примерах.
 
вообще addslashes(). Но не понял, ты хочешь эту текстарею в БД запихать. Или в эту текстарею будут данные передавать, и уже их в БД?
 
ну юзеры будут вписывать свои данные, до 2000 символов.
надо както обработать чтобы в БД потом запихать. addshashes() непоходит так как если введут ковычку получим в итоге её экранирование (\').
раньше preg_match () обрабатывал но с ним проблема, перенос строки нехочет работать :(
 
А ты попробуй. Я сам так делаю. Вот выдержка

Функция addslashes() часто применяется при записи в базу данных. Предположим, если нужно внести в базу данных имя O'reilly, то символ ' должен быть экранирован. В большинстве баз данных для этого используется \, строка будет выглядеть как O\'reilly. Заметьте, что сам символ \ в базу данных записан не будет. Если директива конфигурации magic_quotes_sybase имеет значение on, то символ ' будет экранироваться добавлением еще одного ' вместо \.
ключевой момент- сам символ \ в базу данных записан не будет
Это помогает избежать ошибок при добавлении в бд. Если я понял в чем твоя беда. Ну а чтоб избежать инъекциев, надо все теги поудалять. strip_tags()
 
А ты попробуй. Я сам так делаю. Вот выдержка


ключевой момент- сам символ \ в базу данных записан не будет
Это помогает избежать ошибок при добавлении в бд. Если я понял в чем твоя беда. Ну а чтоб избежать инъекциев, надо все теги поудалять. strip_tags()
add_slashes - не панацея. при записи в бд лучше всего пропускать через mysql_real_escape_string, а при выводе в броузер через htmlspecialchars
 
вот что удалось сделать.
PHP:
$discription = stripslashes (trim (htmlspecialchars ($discription)));
$discription = nl2br ($discription);
$discription = str_replace (array ("\n", "\r"), "", $discription);
$discription = preg_replace ("/\#\]/i", ">", $discription);
$discription = str_replace ("'", "`", $discription);
насколько это безопасно?
 
вот что удалось сделать.
PHP:
$discription = stripslashes (trim (htmlspecialchars ($discription)));
$discription = nl2br ($discription);
$discription = str_replace (array ("\n", "\r"), "", $discription);
$discription = preg_replace ("/\#\]/i", ">", $discription);
$discription = str_replace ("'", "`", $discription);
насколько это безопасно?
первой строчки вполне достаточно )
PHP:
$discription = nl2br ($discription);
$discription = str_replace (array ("\n", "\r"), "", $discription);
- Эти строчки вообще к защите никакого отношения не имеют
PHP:
$discription = preg_replace ("/\#\]/i", ">", $discription);
$discription = str_replace ("'", "`", $discription);
- А вот это можно объяснить какую роль в защите от инъекций играет?
 
ну это я забыл убрать код =)
 
Хотелось бы добавить важное замечание. У вас на хостинге включены magic_quotes_gpc, но где-то они могут быть отключены, по этому советую использовать
PHP:
<?php

if (get_magic_quotes_gpc()) {
    $lastname = stripslashes($discription);
}

$discription = trim (htmlspecialchars ($discription)); 
$discription = nl2br ($discription); 
$description = mysql_real_escape_string( $description );
 
спасибо учту.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху