Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Безопасность скриптов 
:(
    Опции темы
fox20
Дата 9.5.2009, 06:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 9.5.2009

Репутация: нет
Всего: нет



Здраствуйте! Хотелось бы узнать как лучше обезопасить себя от хакеров при написании своей cms, а именно  php иньекций и sql иньекций. 
PM MAIL   Вверх
SneG0K
Дата 9.5.2009, 07:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54



Делать проверку...

Цитата(fox20 @  9.5.2009,  05:44 Найти цитируемый пост)
 php иньекций

Вот тут нефиг передавать имена подключаемых файлов в параметрах...
Цитата(fox20 @  9.5.2009,  05:44 Найти цитируемый пост)
sql иньекций

Если это int, то достаточно преобразовать к инту
Код

$int = (int) $int;

Если это строковый параметр, то 
Код

$string = mysql_real_escape_string($string);

Спасет от всех недугов....
PM WWW Skype   Вверх
NLspieler
Дата 9.5.2009, 07:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 619
Регистрация: 13.10.2008
Где: Берлин

Репутация: 16
Всего: 19



Объясните мне чайнику, что такое CMS ?
PM MAIL   Вверх
SneG0K
Дата 9.5.2009, 08:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54



Content Managed System (Система управления контентом)
Кароче, движок грубо говоря
PM WWW Skype   Вверх
Shark
Дата 9.5.2009, 08:46 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 18.6.2006
Где: Москва

Репутация: 4
Всего: 4



Цитата

Код

$string = mysql_real_escape_string($string)

Спасет от всех недугов.... 

а если там JS код (допустим)... он не выведет его, даже ввиде текста.... тогда надо будет использовать htmlspecialchars


--------------------
Смерть - это только начало... 
Агентство недвижимости Premial
PM MAIL WWW ICQ   Вверх
xoma
Дата 9.5.2009, 09:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 86
Регистрация: 4.4.2007

Репутация: нет
Всего: нет



для работы  с БД используйте PDO и биндинг параметров....Для очистки нежелательного js-кода можно написать функцию или взять ее из какого-нибудь фреймворка....пример вот тут http://andrey.opeykin.ru/yii-xss-filter/
PM MAIL WWW   Вверх
bars80080
Дата 9.5.2009, 11:23 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(Shark @  9.5.2009,  08:46 Найти цитируемый пост)
а если там JS код (допустим)... он не выведет его, даже ввиде текста.... тогда надо будет использовать htmlspecialchars 

если там код javascript, то это никак не повредит базе данных

htmlspecialchars нужна именно там, где js имеет силу - для вывода в браузер

короче,

1. при работе с БД нужно все данные пришедшие от пользователя пропускать через mysql_real_escape_string()
и это панацея, больше ничего не требуется, а даже вредно

2. при выводе данных в браузер, тех что были когда-то введены пользователем, то надо использовать htmlspecialchars()
и это панацея, уничтожит все тэги и кавычки, преобразует их в html-сущности

3. ни в коем разе не давать пользователю узнать структуру сайта и оградить его от возможности влиять на работу системы
простой пример - передача имени подключаемого файла через get-параметры в ссылке. кто-то умудряется так делать. ни в коем случае. даже часть физического пути передавать нельзя. заведите дополнительную таблицу в БД, где перечислите имена и пути ко всем вашим модулям, а передавайте в ссылке только его идентификатор: id=5, или что более красиво в случае ЧПУ адресов /mypage/, где mypage - уникальное имя по которому можно найти путь к модулю в базе


конечно, если встанет задача изменения содержимого сайта пользователем, то здесь придётся выкручиваться. к примеру, пользователь может вставлять целый куски html-кода, тогда htmlspecialchars здесь не покатит, тут уже либо вырезать крамольные тэги <script> и ряд других, придумать какую-то обработку, но это уже будет зависеть от конкретной задачи
PM MAIL WWW   Вверх
Sentox
Дата 10.5.2009, 00:09 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


как то так
**


Профиль
Группа: Участник
Сообщений: 392
Регистрация: 27.1.2009
Где: Зимбабве

Репутация: 7
Всего: 7



bars80080
А как на счёт XSS в загружаемых фото! Здесь уже пробой получится!


Это сообщение отредактировал(а) Sentox - 10.5.2009, 00:10
PM MAIL   Вверх
enof
Дата 10.5.2009, 01:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 837
Регистрация: 23.1.2009
Где: Санкт-Петербург

Репутация: 30
Всего: 35



Цитата(bars80080 @  9.5.2009,  12:23 Найти цитируемый пост)
ни в коем разе не давать пользователю узнать структуру сайта

А че?
Цитата(bars80080 @  9.5.2009,  12:23 Найти цитируемый пост)

конечно, если встанет задача изменения содержимого сайта пользователем, то здесь придётся выкручиваться. к примеру, пользователь может вставлять целый куски html-кода

Ну обычному пользователю думаю давать такую возможность не стоит. При обработке велика вероятность пропустить xss.
PM MAIL ICQ Skype   Вверх
SneG0K
Дата 10.5.2009, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54



Цитата(Sentox @  9.5.2009,  23:09 Найти цитируемый пост)
А как на счёт XSS в загружаемых фото! Здесь уже пробой получится!

В фото? А фото скрипт? Фото можно заставить передать куку? Фото - это фото! Если фото берется с постороннего сайта, то его можно заставить собирать информацию (типа IP), но кукис ты никак не получишь...
PM WWW Skype   Вверх
nerezus
Дата 10.5.2009, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 12
Всего: 43



Цитата

Здраствуйте! Хотелось бы узнать как лучше обезопасить себя от хакеров при написании своей cms, а именно  php иньекций и sql иньекций. 
 Выучить PHP.

После нескольких дней обучения ты уже не допустишь PHP-inj. От SQL-inj избавишься через пару сесяцев, а при альтернативных инструментах(ORM) ты их не сможешь допустить впринципе.
XSS - самые "безопасные" ошибки. Но множество гемора будет с ними.

Но самые опасные ошибки - ошибки в логике, в разделении прав и т.д., но на мелких проектах < 200кб собственного кода их не будет, они для сложных проектов.

Цитата

Ну обычному пользователю думаю давать такую возможность не стоит. При обработке велика вероятность пропустить xss.
 Иногда это надо. Например RICH-редакторы. Надо просто юзать соответствующие библиотеки для преобразования.

Цитата

А как на счёт XSS в загружаемых фото! Здесь уже пробой получится!
 Бред. Не нужно проверять содержимое графики и т.д. - не надо бояться локальных инклюдов, правильная архитектура их исключает.


Цитата

1. при работе с БД нужно все данные пришедшие от пользователя пропускать через mysql_real_escape_string()
 Лучше вообще не юзать устарешую либу для работы с СУБД ;) Это совет не топикстартеру, а тебе.

Цитата

2. при выводе данных в браузер, тех что были когда-то введены пользователем, то надо использовать htmlspecialchars()
и это панацея, уничтожит все тэги и кавычки, преобразует их в html-сущности
 Зачастую надо сохранить форматирование, так что не панацея.

Цитата

3. ни в коем разе не давать пользователю узнать структуру сайта и оградить его от возможности влиять на работу системы
 ИМХО самая большая глупость. Это как старые шифры, которые считались надежными только из-за того, что никто не знал их алгоритма.
Например я знаю архитектуру этого форума, но не могу его поломать, потому что он надежен(уже как полтора года не знаю открытых багов в 1ой ветке IPB, даже приватных XSS не нашли за это время).


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
bars80080
Дата 10.5.2009, 21:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(nerezus @  10.5.2009,  19:42 Найти цитируемый пост)
Лучше вообще не юзать устарешую либу для работы с СУБД ;) Это совет не топикстартеру, а тебе.

мине? а что есть устаревшая либа для СУБД?


Цитата(nerezus @  10.5.2009,  19:42 Найти цитируемый пост)
Зачастую надо сохранить форматирование, так что не панацея.

о чём я и написал далее


Цитата(nerezus @  10.5.2009,  19:42 Найти цитируемый пост)
ИМХО самая большая глупость. Это как старые шифры, которые считались надежными только из-за того, что никто не знал их алгоритма.
Например я знаю архитектуру этого форума, но не могу его поломать

ага, но это не предохранило его от покусительства. ИМХО, самая большая глупость - это позиционировать себя в духе: смотрите какую я замечательную систему изобрёл. меньше знают - крепче спишь. тише воды, ниже травы - в итоге стрелы мимо будут пролетать, а не царапать броню
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0563 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.