Главная :: Форум :: Web ClipArt :: Поиск :: Статистика :: Топ 10 :: Публикация :: Рекомендовать
netadmin.ws
Панель управления Регистрция свободна! Календарь Список пользователей Часто задаваемые вопросы Поиск по форуму Архив скриптов Главная   
Форум сетевых администраторов
Форум сетевых администраторов Форум сетевых администраторов » Программирование » PHP » Безопасность в скриптах
Предыдущая тема     Следующая тема
Автор
Тема    Новая тема     Ответить на эту тему
Vanish
-= n0b0dy =-
Средний рейтинг: 4.29 | Оценок: 24
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Oct 2001
Место проживания: rus|53
Публикаций: 624
Статус: Vanish в оф-лайне
Question Безопасность в скриптах [сообщение #61853]

Вот хочется узнать народные методы повышения безопасности скриптов.
Особенно интересны методы предотвращения SQL Injection и Code Injection.
Ну если есть просвященные по XSS тоже буду рад почитать.

Чуть по позже опишу свои параноидальные идеи

__________________
No pity, no mercy, no regret.

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 28-02-2004 23:48
Нажмите сюда для просмотра профайла Vanish Отправить Персональное сообщение Vanish Найти сообщения от Vanish Добавить Vanish в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
he][es
Участник+
Средний рейтинг: 4.07 | Оценок: 30
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Mar 2003
Место проживания: Барнаул, Россия
Публикаций: 1169
Статус: he][es в оф-лайне
[сообщение #61867]

Моё скромное
Советы банальны, проверять ВСЕ приходящие от пользователя переменные на валидность... и будет вам счастье...

__________________
Админ - вождь Апачей...

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 29-02-2004 03:52
Нажмите сюда для просмотра профайла he][es Отправить Персональное сообщение he][es Найти сообщения от he][es Добавить he][es в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
Vanish
-= n0b0dy =-
Средний рейтинг: 4.29 | Оценок: 24
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Oct 2001
Место проживания: rus|53
Публикаций: 624
Статус: Vanish в оф-лайне
[сообщение #61876]

Я спрашивал методы =) Проверять можно по разному.
Можно держать в голове и в одном месте ошибится, можно предоставить это самому скрипту, но тут тоже загвоздки есть.

__________________
No pity, no mercy, no regret.

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 29-02-2004 08:56
Нажмите сюда для просмотра профайла Vanish Отправить Персональное сообщение Vanish Найти сообщения от Vanish Добавить Vanish в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
polo
Администратор
Средний рейтинг: 4.77 | Оценок: 106
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: May 2001
Место проживания:
Публикаций: 4642
Статус: polo в оф-лайне
[сообщение #61878]

Особо нужно проверять те значения которые потом будут использоваться при обращении к базе. Ошибаться тут не нужно, так как каждая ошибка это дыра в скрипте.

__________________
Всегда есть решение.

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 29-02-2004 11:11
Нажмите сюда для просмотра профайла polo Отправить Персональное сообщение polo Посетить домашнию страничку polo! Найти сообщения от polo Добавить polo в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
he][es
Участник+
Средний рейтинг: 4.07 | Оценок: 30
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Mar 2003
Место проживания: Барнаул, Россия
Публикаций: 1169
Статус: he][es в оф-лайне
[сообщение #61901]

quote:

Можно держать в голове и в одном месте ошибится, можно предоставить это самому скрипту, но тут тоже загвоздки есть.

Нафига тебе чего то в голове то держать?
и что значит "можно предоставить это самому скрипту"?
Берешь ты из GET-a цифру, так проверь, что это цифра или скажи ей что она цифра

__________________
Админ - вождь Апачей...

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 29-02-2004 21:58
Нажмите сюда для просмотра профайла he][es Отправить Персональное сообщение he][es Найти сообщения от he][es Добавить he][es в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
Vanish
-= n0b0dy =-
Средний рейтинг: 4.29 | Оценок: 24
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Oct 2001
Место проживания: rus|53
Публикаций: 624
Статус: Vanish в оф-лайне
[сообщение #61903]

quote:
Берешь ты из GET-a цифру, так проверь, что это цифра или скажи ей что она цифра

вот походу ты начинаешь понимать о чем я разговор завел.
quote:
Особо нужно проверять те значения которые потом будут использоваться при обращении к базе. Ошибаться тут не нужно, так как каждая ошибка это дыра в скрипте.

ну я не первый год женат =) А по поводу не нужно ошибаться, тут проблема стандартна, к сожалению при наращивании функциональности на скрипт иногда происходят нежелательные ошибки, тем более когда скрипт разрастается. Как говорится: "никто не застрахован".

Вот давайте рассуждать что необходимо для "ленивой" безопасности:
1. register_globals = 0 или же пишем так как будто выключена. Следовательно получаем значения присланные пользователем из $_POST и $_GET
2. раз мы уж получаем значения, то почему бы сразу их не обработать. Допустим под это дело мы выведем функцию, с параметрами названий переменных которых мы должны глобализовать.
3. а почему бы в пункте 2 сразу и не привести глобализуемые переменные:
а) к необходимому типу (допустим я все переменные обозначаю по Венгерской нотации)
б) очистить их от нежелаемого контента

Вот в таком путь имеет какие либо подводные камни?

Про работу с базой мы поговорим позже.

__________________
No pity, no mercy, no regret.

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 29-02-2004 22:34
Нажмите сюда для просмотра профайла Vanish Отправить Персональное сообщение Vanish Найти сообщения от Vanish Добавить Vanish в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
polo
Администратор
Средний рейтинг: 4.77 | Оценок: 106
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: May 2001
Место проживания:
Публикаций: 4642
Статус: polo в оф-лайне
[сообщение #61907]

У каждого свои методы программирования, глобализовать только нужные переменные легко, но вто как их сразу проверить? Ну можно сделать общие проверки типа trim, ну еще удалить javascript, иметь общие название например для передаваемых ID (они опаснее всего и чаще всего передаются) и превратить их в intval, на этом дело заканчивается. Далее нужно все проверять индивидуально, я к тому что нельзя написать универсальную функцию для этого.

__________________
Всегда есть решение.

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 29-02-2004 22:57
Нажмите сюда для просмотра профайла polo Отправить Персональное сообщение polo Посетить домашнию страничку polo! Найти сообщения от polo Добавить polo в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
Denveroid
SiteMaker
Средний рейтинг: 4.33 | Оценок: 9
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Jun 2002
Место проживания: Israel
Публикаций: 220
Статус: Denveroid в оф-лайне
[сообщение #62207]

Замечательная функция:

PHP:


function xss_clean($var)
{
    
$var = preg_replace( '/javascript/i', 'java script', $var );
    
$var = str_replace( '"', '"', $var );
    
$var = str_replace( '<', '&lt;', $var );
    return 
str_replace( '>', '&gt;', $var );
}



чистит весь критичный юзер-инпут.
Плюс ко всему, я например использую функцию, которая валидирует практически любой юзер-инпут: начиная с интов, флоатов, email, и кончая IP с разными условиями и MAC адресами.
Что еще сказать... В запросах всегда использую одинарные кавычки вокруг переменных. И насчет magic_quotes_gpc... надо быть очень внимательным, если она включена.

__________________
`
SiteMaker.Ru - Академия сайтостроительства

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 06-03-2004 21:20
Нажмите сюда для просмотра профайла Denveroid Отправить Персональное сообщение Denveroid Посетить домашнию страничку Denveroid! Найти сообщения от Denveroid Добавить Denveroid в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
Vanish
-= n0b0dy =-
Средний рейтинг: 4.29 | Оценок: 24
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Oct 2001
Место проживания: rus|53
Публикаций: 624
Статус: Vanish в оф-лайне
[сообщение #62208]

quote:
которая валидирует практически любой юзер-инпут: начиная с интов, флоатов, email, и кончая IP с разными условиями и MAC адресами

каким образом распознаешь как надо валидацию делать?
что то у меня кроме особого названия переменных ничего больше не придумать

__________________
No pity, no mercy, no regret.

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 06-03-2004 21:39
Нажмите сюда для просмотра профайла Vanish Отправить Персональное сообщение Vanish Найти сообщения от Vanish Добавить Vanish в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
Denveroid
SiteMaker
Средний рейтинг: 4.33 | Оценок: 9
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Jun 2002
Место проживания: Israel
Публикаций: 220
Статус: Denveroid в оф-лайне
[сообщение #62209]

field_validator($field_descr, $field_data, $field_type, $min_length="", $max_length="", $field_required=1)

__________________
`
SiteMaker.Ru - Академия сайтостроительства

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 06-03-2004 23:27
Нажмите сюда для просмотра профайла Denveroid Отправить Персональное сообщение Denveroid Посетить домашнию страничку Denveroid! Найти сообщения от Denveroid Добавить Denveroid в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
Vanish
-= n0b0dy =-
Средний рейтинг: 4.29 | Оценок: 24
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Oct 2001
Место проживания: rus|53
Публикаций: 624
Статус: Vanish в оф-лайне
[сообщение #62244]

Denveroid понятно, просто ты ручками обрабатываешь входные переменные, поочередно прогоняя их через эту функцию, самостоятельно указывая тип.

__________________
No pity, no mercy, no regret.

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 07-03-2004 11:02
Нажмите сюда для просмотра профайла Vanish Отправить Персональное сообщение Vanish Найти сообщения от Vanish Добавить Vanish в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
Denveroid
SiteMaker
Средний рейтинг: 4.33 | Оценок: 9
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Jun 2002
Место проживания: Israel
Публикаций: 220
Статус: Denveroid в оф-лайне
[сообщение #62256]

Vanish
Совершенно верно. Ну а чего тут велосипед придумывать то?

__________________
`
SiteMaker.Ru - Академия сайтостроительства

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 07-03-2004 13:10
Нажмите сюда для просмотра профайла Denveroid Отправить Персональное сообщение Denveroid Посетить домашнию страничку Denveroid! Найти сообщения от Denveroid Добавить Denveroid в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
doc
Участник+

Зарегистрирован: Jun 2002
Место проживания: Украина
Публикаций: 83
Статус: doc в оф-лайне
[сообщение #63968]

Denveroid

Не перегружая обработчик повторами функций можно записать


PHP:


$typed_text 
= htmlspecialchars($typed_text, ENT_QUOTES);



что в результате аналогично этому ... а выполняеться побыстрее

PHP:

function xss_clean($var) 
{ 
    
$var = preg_replace( '/javascript/i', 'java script', $var ); 
    
$var = str_replace( '"', '&quot;', $var ); 
    
$var = str_replace( '<', '&lt;', $var ); 
    return 
str_replace( '>', '&gt;', $var ); 
}

__________________
Есть вопросы спрашивайте!

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 01-04-2004 02:15
Нажмите сюда для просмотра профайла doc Отправить Персональное сообщение doc Найти сообщения от doc Добавить doc в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
rio
Power in your mind !
Средний рейтинг: 3.67 | Оценок: 3
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Sep 2002
Место проживания: Moscow
Публикаций: 172
Статус: rio в оф-лайне
[сообщение #64061]

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

P.S.: Не слушайте пьяных людей (что-то последнее время очень часто дни рождения у юзеров )

__________________
Ковчег построили дилетанты, а профессионаллы построили "Титаник" - не бойтесь спрашивать то , чего вы не знаете , а так же делать то - чего не умеете !

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 02-04-2004 15:55
Нажмите сюда для просмотра профайла rio Отправить Персональное сообщение rio Посетить домашнию страничку rio! Найти сообщения от rio Добавить rio в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
Vanish
-= n0b0dy =-
Средний рейтинг: 4.29 | Оценок: 24
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Oct 2001
Место проживания: rus|53
Публикаций: 624
Статус: Vanish в оф-лайне
[сообщение #64064]

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

__________________
No pity, no mercy, no regret.

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 02-04-2004 17:30
Нажмите сюда для просмотра профайла Vanish Отправить Персональное сообщение Vanish Найти сообщения от Vanish Добавить Vanish в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя



Формат времени GMT. Текущее время 12:36.
Новая тема   Ответить на эту тему [ Версия для печати Печать | Отправить эту страницу другу/знакомому! Отправить | Получать уведомления об обновлении этой темы Подписка ] Предыдущая тема     Следующая тема
Навигация по форуму:
Оценка темы:

Правила форума:
Вы не можете создавать новые темы.
Вы не можете отвечать на существующие темы.
Вы не можете прикреплять файлы.
Вы не можете редактировать свои сообщения.
HTML теги выкл.
Спец. код вкл.
Смайлики вкл.
[IMG] тег выкл.
 

Page generated in 0.28378391 seconds (98.00% PHP - 2.00% MySQL) with 26 queries.


  Главная :: Форум :: Web ClipArt :: Поиск :: Статистика :: Топ 10 :: Публикация :: Рекомендовать
©NetAdmin.ws, 2001-2026.
Powered by: vBulletin
Copyright ©2000, 2001, Jelsoft Enterprises Limited.