Перейти к содержанию
CMSTOOLS.org - форум поддержки и развития CMS

Защита от xss


api

Рекомендуемые сообщения


function security( $value ){
if( is_array( $value ) ){
$value = array_map( 'security', $value );
}else{
if( !get_magic_quotes_gpc() ){
$value = htmlspecialchars( $value, ENT_QUOTES);
}else{
$value = htmlspecialchars( stripslashes( $value ), ENT_QUOTES);
}
$value = str_replace( "\\", "\\\\", $value );
}
return $value;
}
Этот код поможет вам полностью защиниться от xss

Использование:
<?

$_GET = security($_GET);
$_POST = security($_POST);
$_COOKIE = security($_COOKIE);
$_SESSION = security($_SESSION);

?>
Ссылка на комментарий
  • 1 месяц спустя...

Давайте рассмотрим пример:

 

Допустим я отправляю на сервер такой запрос

var data = {
	test: "какието текстовые данные", // Представьте что здесь много данных
	test1: "какието текстовые данные", // Представьте что здесь много данных
	test3: "какието текстовые данные", // Представьте что здесь много данных
	test4: "какието текстовые данные", // Представьте что здесь много данных
	test5: 3,
	test6: 6,
	test7: "какието текстовые данные", // Представьте что здесь много данных
	test8: "какието текстовые данные", // Представьте что здесь много данных
	test9: "какието текстовые данные", // Представьте что здесь много данных
	test10: 2
};

1. Обратите внимание что test5, test6, test10 Это число и проверять в php его мы будем функцией intval() и лишний цикл таких полей ненужен.

2. array_map() я бы заменил на foreach так как она быстрее и менее потребляет CPU чем array_map()

3. get_magic_quotes_gpc() свыше php 5.4 всегда возвращает false и тем у кого php 5.4 или выше эта лишняя проверка вообще ненужна

 

Итог моего мнения таков:

 

Лично я бы не использовал в своих проектах эту функцию а проверял бы все поля отдельно!

Но для ленивых эта функция в самый раз!

Конкретно к функции проблем не имею она рабочая и автору спасибо за такую шару для новичков, но как говориться каждому свое!

Изменено пользователем Andrey
Ссылка на комментарий

Давайте рассмотрим пример:

 

Допустим я отправляю на сервер такой запрос

var data = {
	test: "какието текстовые данные", // Представьте что здесь много данных
	test1: "какието текстовые данные", // Представьте что здесь много данных
	test3: "какието текстовые данные", // Представьте что здесь много данных
	test4: "какието текстовые данные", // Представьте что здесь много данных
	test5: 3,
	test6: 6,
	test7: "какието текстовые данные", // Представьте что здесь много данных
	test8: "какието текстовые данные", // Представьте что здесь много данных
	test9: "какието текстовые данные", // Представьте что здесь много данных
	test10: 2
};

1. Обратите внимание что test5, test6, test10 Это число и проверять в php его мы будем функцией intval() и лишний цикл таких полей ненужен.

2. array_map() я бы заменил на foreach так как она быстрее и менее потребляет CPU чем array_map()

3. get_magic_quotes_gpc() свыше php 5.4 всегда возвращает false и тем у кого php 5.4 или выше эта лишняя проверка вообще ненужна

 

Итог моего мнения таков:

 

Лично я бы не использовал в своих проектах эту функцию а проверял бы все поля отдельно!

Но для ленивых эта функция в самый раз!

Конкретно к функции проблем не имею она рабочая и автору спасибо за такую шару для новичков, но как говориться каждому свое!

автар OTTO11

Ссылка на комментарий
  • 5 недель спустя...

Специально зарегился тут. Чтоб ответить.

Это первоначальная защита. После нее делать можно все что угодно.

То что она обработает цифру НО защитит сам сайт от любого рода xss. Уж лучше пар десятитысячных секунд потратить на это, чем в попыхах потом искать где ж ломанули сайт в итоге.

Что тебе мешает переписать ее на foreach и не использовать array_map() при чем тут CPU вообще не понятно. Если она съест на 5 байт пямяти это не такая трагедия по сравнению с потерей данных о пользователях.

 

От себя добавлю:

Ты занимаешься экономией  на спичках.  И создаешь проблемы там где их быть не может в принципе.

Ссылка на комментарий
  • 7 месяцев спустя...
  • 2 года спустя...
В 05.10.2015 в 01:51, OTTO11 сказал:

Специально зарегился тут. Чтоб ответить.

Это первоначальная защита. После нее делать можно все что угодно.

То что она обработает цифру НО защитит сам сайт от любого рода xss. Уж лучше пар десятитысячных секунд потратить на это, чем в попыхах потом искать где ж ломанули сайт в итоге.

Что тебе мешает переписать ее на foreach и не использовать array_map() при чем тут CPU вообще не понятно. Если она съест на 5 байт пямяти это не такая трагедия по сравнению с потерей данных о пользователях.

 

От себя добавлю:

Ты занимаешься экономией  на спичках.  И создаешь проблемы там где их быть не может в принципе.

Ну 5 байт у одного пользователя а в миллионов будет и гигабайты 

Ссылка на комментарий
  • 3 месяца спустя...

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...