![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| fox20 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 9.5.2009 Репутация: нет Всего: нет |
Здраствуйте! Хотелось бы узнать как лучше обезопасить себя от хакеров при написании своей cms, а именно php иньекций и sql иньекций.
|
|||
|
||||
| SneG0K |
|
||||
|
Max Mara ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1887 Регистрация: 1.12.2007 Где: Wis Dells Репутация: 7 Всего: 54 |
Делать проверку...
Вот тут нефиг передавать имена подключаемых файлов в параметрах... Если это int, то достаточно преобразовать к инту
Если это строковый параметр, то
Спасет от всех недугов.... |
||||
|
|||||
| NLspieler |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 619 Регистрация: 13.10.2008 Где: Берлин Репутация: 16 Всего: 19 |
Объясните мне чайнику, что такое CMS ?
|
|||
|
||||
| SneG0K |
|
|||
|
Max Mara ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1887 Регистрация: 1.12.2007 Где: Wis Dells Репутация: 7 Всего: 54 |
Content Managed System (Система управления контентом)
Кароче, движок грубо говоря |
|||
|
||||
| Shark |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 703 Регистрация: 18.6.2006 Где: Москва Репутация: 4 Всего: 4 |
а если там JS код (допустим)... он не выведет его, даже ввиде текста.... тогда надо будет использовать htmlspecialchars |
||||
|
|||||
| xoma |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 86 Регистрация: 4.4.2007 Репутация: нет Всего: нет |
для работы с БД используйте PDO и биндинг параметров....Для очистки нежелательного js-кода можно написать функцию или взять ее из какого-нибудь фреймворка....пример вот тут http://andrey.opeykin.ru/yii-xss-filter/
|
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
если там код javascript, то это никак не повредит базе данных htmlspecialchars нужна именно там, где js имеет силу - для вывода в браузер короче, 1. при работе с БД нужно все данные пришедшие от пользователя пропускать через mysql_real_escape_string() и это панацея, больше ничего не требуется, а даже вредно 2. при выводе данных в браузер, тех что были когда-то введены пользователем, то надо использовать htmlspecialchars() и это панацея, уничтожит все тэги и кавычки, преобразует их в html-сущности 3. ни в коем разе не давать пользователю узнать структуру сайта и оградить его от возможности влиять на работу системы простой пример - передача имени подключаемого файла через get-параметры в ссылке. кто-то умудряется так делать. ни в коем случае. даже часть физического пути передавать нельзя. заведите дополнительную таблицу в БД, где перечислите имена и пути ко всем вашим модулям, а передавайте в ссылке только его идентификатор: id=5, или что более красиво в случае ЧПУ адресов /mypage/, где mypage - уникальное имя по которому можно найти путь к модулю в базе конечно, если встанет задача изменения содержимого сайта пользователем, то здесь придётся выкручиваться. к примеру, пользователь может вставлять целый куски html-кода, тогда htmlspecialchars здесь не покатит, тут уже либо вырезать крамольные тэги <script> и ряд других, придумать какую-то обработку, но это уже будет зависеть от конкретной задачи |
|||
|
||||
| Sentox |
|
|||
|
как то так ![]() ![]() Профиль Группа: Участник Сообщений: 392 Регистрация: 27.1.2009 Где: Зимбабве Репутация: 7 Всего: 7 |
bars80080
А как на счёт XSS в загружаемых фото! Здесь уже пробой получится! Это сообщение отредактировал(а) Sentox - 10.5.2009, 00:10 |
|||
|
||||
| enof |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 837 Регистрация: 23.1.2009 Где: Санкт-Петербург Репутация: 30 Всего: 35 |
А че? Ну обычному пользователю думаю давать такую возможность не стоит. При обработке велика вероятность пропустить xss. |
|||
|
||||
| SneG0K |
|
|||
|
Max Mara ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1887 Регистрация: 1.12.2007 Где: Wis Dells Репутация: 7 Всего: 54 |
В фото? А фото скрипт? Фото можно заставить передать куку? Фото - это фото! Если фото берется с постороннего сайта, то его можно заставить собирать информацию (типа IP), но кукис ты никак не получишь... |
|||
|
||||
| nerezus |
|
||||||||||||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 12 Всего: 43 |
После нескольких дней обучения ты уже не допустишь PHP-inj. От SQL-inj избавишься через пару сесяцев, а при альтернативных инструментах(ORM) ты их не сможешь допустить впринципе. XSS - самые "безопасные" ошибки. Но множество гемора будет с ними. Но самые опасные ошибки - ошибки в логике, в разделении прав и т.д., но на мелких проектах < 200кб собственного кода их не будет, они для сложных проектов.
Например я знаю архитектуру этого форума, но не могу его поломать, потому что он надежен(уже как полтора года не знаю открытых багов в 1ой ветке IPB, даже приватных XSS не нашли за это время). |
||||||||||||
|
|||||||||||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
мине? а что есть устаревшая либа для СУБД? о чём я и написал далее ага, но это не предохранило его от покусительства. ИМХО, самая большая глупость - это позиционировать себя в духе: смотрите какую я замечательную систему изобрёл. меньше знают - крепче спишь. тише воды, ниже травы - в итоге стрелы мимо будут пролетать, а не царапать броню |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |