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

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

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

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

И еще ссылки вида href="javascript:..."
 
MadGreen
мы с обой одновременно написали :-)
Я partizan отвечал, твоего сообщения не было еще )))
Да, из базы выходит экранированный текст

-~{}~ 20.11.06 19:00:

partizan
да, кстати, вроде больше нету способов бяку написать
 
Автор оригинала: MadGreen
что ДА? и для чего есть класс safehtml?
ты ответь на вопрос, если ты достаешь из базы текст в том виде в котором он хранится - он остается экранированным?
Этот пост относился к защите от XSS, а не инъекций
 
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
partizan у него проблема с записью в базу, а не с валидацией пока
Ну в теме 2 разных вопроса: как защитится от инъекций и от XSS. Я отвечал про XSS, экранирование тут непричем
 
и код в котором обрабатываешь переменную этой функцией и пишешь в базу
 
partizan
да, с XSS вроде разобрались, просто думал есть нормальный готовый класс для этого
Спасибо тебе
MadGreen
Нашел проблему, в функции добавления mysql_escape_string было написано еще.

Всем спасибо за подсказки!
 
ага! приношу свои извинения, просто подзабыл, что в классе при добавлении написал, код большой
 
Надо, блин, взть за правило такие темы закрывать.
Если пишет автор про то, чего не может быть, то закрывать тему до тех пор, пока не приведет код в соответствие с реальностью.

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

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

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