Защита от XSS и SQL инъекции

partizan

Новичок
А в чем проблема?

Ищеш в коде теги <script - заменяеш на &ltscript

Ищеш onClick=, onSubmit= и т.д. и удаляеш, там по-моему не так много вариантов.

И еще ссылки вида href="javascript:..."
 

deepslam

Новичок
MadGreen
мы с обой одновременно написали :)
Я partizan отвечал, твоего сообщения не было еще )))
Да, из базы выходит экранированный текст

-~{}~ 20.11.06 19:00:

partizan
да, кстати, вроде больше нету способов бяку написать
 

partizan

Новичок
Автор оригинала: MadGreen
что ДА? и для чего есть класс safehtml?
ты ответь на вопрос, если ты достаешь из базы текст в том виде в котором он хранится - он остается экранированным?
Этот пост относился к защите от XSS, а не инъекций
 

deepslam

Новичок
MadGreen
вот:
PHP:
function sql_quote( $value )
{
    if( get_magic_quotes_gpc() )
    {
          $value = stripslashes( $value );
    }
    //check if this function exists
    if( function_exists( "mysql_real_escape_string" ) )
    {
          $value = mysql_real_escape_string( $value );
    }
    //for PHP version < 4.3.0 use addslashes
    else
    {
          $value = addslashes( $value );
    }
    return $value;
}
partizan
Опять одновременно отвечали :)
 

MadGreen

meninweb
она и должна добавлять этот знак, приведи код, в котором ты из базы достаешь данные
 

partizan

Новичок
Автор оригинала: MadGreen
partizan у него проблема с записью в базу, а не с валидацией пока
Ну в теме 2 разных вопроса: как защитится от инъекций и от XSS. Я отвечал про XSS, экранирование тут непричем
 

MadGreen

meninweb
и код в котором обрабатываешь переменную этой функцией и пишешь в базу
 

deepslam

Новичок
partizan
да, с XSS вроде разобрались, просто думал есть нормальный готовый класс для этого
Спасибо тебе
MadGreen
Нашел проблему, в функции добавления mysql_escape_string было написано еще.

Всем спасибо за подсказки!
 

deepslam

Новичок
ага! приношу свои извинения, просто подзабыл, что в классе при добавлении написал, код большой
 

Фанат

oncle terrible
Команда форума
Надо, блин, взть за правило такие темы закрывать.
Если пишет автор про то, чего не может быть, то закрывать тему до тех пор, пока не приведет код в соответствие с реальностью.

Ну то, что эти две защиты - SQL и XSS - это абсолютно разные вещи, и про них надо спрашивать в РАЗНЫХ темах - ты уже понял?
 

deepslam

Новичок
Понял, просто думал в одной теме спросить про то, как защищаться типа ) А получилось вон как, все равно всем спасибо , главное все проблемы решили , в одной теме :)
 

Фанат

oncle terrible
Команда форума
по-хорошему, SQL инъекций не бывает.
бывает некорректно составленный запрос.

и все эти действия с escape_string ты делаешь не для защиты от инъекций. а для корректного составления запросов.
а защита - это уже так - побочный эффект.

только надо помнить, что идентификаторы в MySQL экранируются по-другому
 
Сверху