Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Обнаружение спецсимволов

Сообщения:  [1-10]    [11-20]  [21-26] 

 
 автор: Unkind   (26.07.2007 в 08:45)   письмо автору
 
   для: amigo62   (25.07.2007 в 08:02)
 

$a=htmlspecialchars(stripslashes($a));
Уберите stripslashes()

   
 
 автор: amigo62   (26.07.2007 в 08:41)   письмо автору
 
   для: Ralph   (25.07.2007 в 09:19)
 

Poison, при обработке htmlspecialchars(); перед выхлопом сообщение с тэгами превратится в пособие по HTML для новичков...
Ralph, действительно, я об этом и не подумал! Изменения в обработке не затронут сами сообщения)
Вобщем, все понятно, все работает на ура, спасибо всем, кто принял участие!

   
 
 автор: Ralph   (25.07.2007 в 09:19)   письмо автору
 
   для: Ralph   (25.07.2007 в 08:34)
 

Или к примеру у меня тэг[mail]...[/mail] заменяется на ссылку <a href="mailto.php?id= И вдруг мне понадобилось файл mailto.php перенести из главного каталога в каталог ext.Во ВСЕХ сообщениях останется некорректная ссылка и для норм.работы мне придется менять ВСЕ сообщения,вместо того,чтобы изменить ОДНУ строку в файле обработки bb-кода на выходе...То же со смайлами...

   
 
 автор: Ralph   (25.07.2007 в 08:34)   письмо автору
 
   для: Poison   (25.07.2007 в 08:15)
 

А зачем ? Я лично вообще сторонник того,чтобы инфа хранилась как есть,без искажений.А уж при выводе или др.использовании делай с ней что хошь...А то потом вылазят всякие баги типа при выводе обрезанного анонса новости получишь не вышел новый автомобиль "Лада"...вышел новый автомобиль "Лада&quo...

   
 
 автор: Poison   (25.07.2007 в 08:15)   письмо автору
 
   для: amigo62   (25.07.2007 в 08:02)
 

А почему бы не преобозовать BB при добавлении в БД?

   
 
 автор: amigo62   (25.07.2007 в 08:02)   письмо автору
 
   для: Unkind   (25.07.2007 в 01:42)
 

Вывод из всего вышесказаного:
<?php if(!empty(trim($_POST['a'])))
{
if(
get_magic_quotes_gpc()) $_POST['a']=stripslashes($_POST['a']);
$into_query=mysql_escape_string($_POST['a']);
//запрос INSERT с записью $into_query
}
?>

Вывод информации

<?php 
//данные из таблицы считаны в $a
$a=htmlspecialchars(stripslashes($a));
//функция MyTags($val) определена ранее, производит обработку []-тэгов
$a=MyTags($a);
echo 
$a?>

как я понимаю такая обработка сгодится для добавления и вывода сообщений в гостевой, форуме и др..

   
 
 автор: Unkind   (25.07.2007 в 01:42)   письмо автору
 
   для: amigo62   (24.07.2007 в 22:26)
 

mysql_real_escape_string() имеет смысл применять при работе с некоторыми особыми многобайтовыми кодировками, где какие-то символы состоят из байтов, которые будут экранированы обычной mysql_escape_string().

Что касается bbCode: да, надо преобразовывать теги перед выводом.
Но это не существенно замедлит генерацию страницы, если, конечно, RegEx написаны грамотно.

   
 
 автор: amigo62   (24.07.2007 в 22:26)   письмо автору
 
   для: Trianon   (24.07.2007 в 09:44)
 

Многое для меня прояснилось в этом вопросе. Но есть еще непонятки: mysql_real_escape_string это та же mysql_escape_string с расширенной функциональностью или она применяется специфически?
Может, лучше применить именно mysql_real_escape_string ?
И еще- как же все таки с ВВ кодами? Если Вы рекомендуете прописать htmlspecialchars(); именно на выходе, то придется делать обработку ПОСЛЕ ее вызова, а т.к. будут использованы regexp'ы, это существенно замедлит вывод страницы. Как обычно поступают в подобных случаях? Подскажите, опыта маловато....

   
 
 автор: Trianon   (24.07.2007 в 09:44)   письмо автору
 
   для: amigo62   (23.07.2007 в 23:28)
 

>
<?php
>$query="SELECT * FROM `table` WHERE `nick`='$nick'";
>
?>

>$nick="aaa' OR `nick`='admin"; как Вам такое значение?

А никак. Здесь Вы играете незаэкранированным символом ' апостроф, а вовсе не символом ` обратная косая кавычка.

>В одной из вышеприведенных тем была Ваша реплика о безопасности с такой фразой: "...С
>программным исключением возможности подключения файлов из целевой папки в поток кода..."
>1) Как это делается?
например, не применять операторы подключения кода (include / include_once / require / require_once) - вообще. Или хотя бы не применять их с параметрами, в которых фигурируют входные аргументы.

Ограничить загрузку файлов пользователя определенными папками.
Сохранять файлы под собственными именами.
Запретить выдачу апачем файлов из этих папок с произвольными MIME-типами
Запретить интерпретацию php в этих папках.
и т.д.


>2) Что допустимо и что не допустимо в сценарии, чтобы этого избежать?
В общем случае - ничего не допустимо. Всё что допустимо - допустимо в индивидуальном порядке.

   
 
 автор: amigo62   (23.07.2007 в 23:28)   письмо автору
 
   для: Trianon   (23.07.2007 в 21:32)
 

<?php
$query
="SELECT * FROM `table` WHERE `nick`='$nick'";
?>

$nick="aaa' OR `nick`='admin"; как Вам такое значение?
В одной из вышеприведенных тем была Ваша реплика о безопасности с такой фразой: "...С
программным
исключением
возможности
подключения
файлов из
целевой папки в
поток кода..."
1) Как это делается?
2) Что допустимо и что не допустимо в сценарии, чтобы этого избежать?

P.S. Кажется, начинаю понимать:
главное- экранирован ' , а ` не опасен, т.к. закрыт после имени столбца=)
Ну, с прогрессом меня;)

   

Сообщения:  [1-10]    [11-20]  [21-26] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования