![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Wolf1994 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 5.10.2004 Репутация: 7 Всего: 29 |
Написал TOP, выложил для скачивания. И получил замечания по защите. В частности было указано, что не заблокировав HTML - тэги, я могу получить во вводе:
- и это откроет мои куки. Я не понял - как? Куки ведь хранятся на моём PC, как хакер сможет выудить их удалённо? И второе. Я ставил тэги addslashes только на поля с текстом, предполагая, что в обычных полях кавычек не будет, а если будут, то это не страшно - MySQL просто выдаст ошибку и прекратит работу. Но, теперь, прочитав про MySQL - injection, не уверен. Насколько это опасно? Надо ли ставить addslashes на все переменные? |
|||
|
||||
| Black |
|
||||||||||
|
Web-Development ![]() ![]() Профиль Группа: Участник Сообщений: 980 Регистрация: 15.8.2004 Репутация: 7 Всего: 45 |
Wolf1994
Переменные, которые формируют строку запроса к БД MySQL необходимо прорускать через
Данная функция экранизирует символы: " ' \ в \" \' \\
если хакер догадается о названиях твоих полей и таблиц в БД - то это очень опасно. Начиная с изменения информации, вплоть до ее полного удаления. ------------------------------------------------------------ Чтобы избежать атак XSS любую строку введенную пользователем необходимо пропускать через
Данная функция заменяет символы: < > " & на их HTML-аналоги. Замечу, что символ ' не фильтруется поэтому необходимо самим его заменить на " или экранизировать \'
зачем тебе вообще куки??? чтобы отдавать их определенному сайту, который эти куки установил. Другим сайтам (доменам отличным от того, который установил тебе куку) браузер куку не отдаст. А вот если злоумышленник сумеет как-то вставить JavaScript-код на страницу сайта, который тебе установил данную куку, то считай что, если хакер он-лайн и ты авторизован на том сайте... то хакер может авторизоваться на сайте за тебя Как он это сделает??? Ну например, если SID (ID сессии в PHP) хранится у тебя в куке хакер узнает его, т.к. этот номер будет выслан ему через JavaScript. А что будет дальше зависит от того кто и каким местом делал этот уязвимый для XSS сайт. Тебя даже через flash могут взломать. ------------------------------------------------------------- Также надо проверять URL, пути к картинкам, чтобы в них не были вставлены скрипты: Пример XSS атаки:
Почитать думаю стоит и это: http://www.securitylab.ru/54476.html http://www.securitylab.ru/53247.html http://www.securitylab.ru/54656.html http://antichat.ru/crackchat/HTML/ - после чтения этой статьи многих посещает чувство безвыходности, так оно и есть http://www.securitylab.ru/52234.html - а эта статья докажет что и данный форум уязвим к XSS Есть два выхода - запретить на форуме flash и аватары и рисунки в подписях. и для маньяков: http://hattack.ru/ Вообщем все проверяйте и когда утром встаешь проверяй не подменили ли тебе зубную пасту -------------------- Могу все, но ничего не умею :-) |
||||||||||
|
|||||||||||
| Bikutoru |
|
|||
|
Увлекающийся ![]() ![]() Профиль Группа: Участник Сообщений: 522 Регистрация: 24.5.2005 Где: Москва Репутация: 8 Всего: 22 |
Не обязательно, для численных данных можно сделать что-то вроде (int)$_POST["int_var"]. -------------------- Человек, словно в зеркале мир — многолик, Он ничтожен — и он же безмерно велик! Омар Хайям |
|||
|
||||
| Black |
|
|||
|
Web-Development ![]() ![]() Профиль Группа: Участник Сообщений: 980 Регистрация: 15.8.2004 Репутация: 7 Всего: 45 |
Bikutoru
тогда так:
Это сообщение отредактировал(а) PHP-DIRECTOR - 23.6.2005, 17:23 -------------------- Могу все, но ничего не умею :-) |
|||
|
||||
| Bikutoru |
|
|||
|
Увлекающийся ![]() ![]() Профиль Группа: Участник Сообщений: 522 Регистрация: 24.5.2005 Где: Москва Репутация: 8 Всего: 22 |
PHP-DIRECTOR, абсолютно согласен. Разве что можно еще записать в какой-нибудь лог-файл, что это за умник/ца такой/ая...
-------------------- Человек, словно в зеркале мир — многолик, Он ничтожен — и он же безмерно велик! Омар Хайям |
|||
|
||||
| Ciber SLasH |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1813 Регистрация: 9.11.2004 Где: С.-Петербург Репутация: 3 Всего: 67 |
Да блин, точно впадаешь в состояние безисходности... PS: правда здесь не удаётся внедрить JavaScript в тэг IMG. |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
А вспомни мою тему.. ! ctype_digit... Wolf1994 Читай: http://forum.vingrad.ru/index.php?showtopic=38887 |
|||
|
||||
| Wolf1994 |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 5.10.2004 Репутация: 7 Всего: 29 |
А надо ли после "спасения" строки, при её "вытаскивании", как-то возвращать ей первоначальный вид?
То есть то, что я выложил Top и теперь каждый скачавший знает названия полей - это опасно? А как же с "движками", теми же форумами - каждый знает названия полей в них? Это сообщение отредактировал(а) Wolf1994 - 24.6.2005, 08:14 |
||||
|
|||||
| Black |
|
|||
|
Web-Development ![]() ![]() Профиль Группа: Участник Сообщений: 980 Регистрация: 15.8.2004 Репутация: 7 Всего: 45 |
Wolf1994
нет, не надо. Экранизация как раз помогает избежать неправильную работу со строкой при записи в БД. Можно сказать, что после этих действий строка не изменяется вовсе. Т.е. после помещения в БД и извлечения строки из БД, после echo строка будет такой же как и была первоначально. Если ты пишешь свой движок только для своего сайта - лучше не выкладывай исходный код :-) Почему - я уже говорил.
эти скрипты создают, как правило, опытные программисты. Плюс их уже долгое время все использовали и позакрывали все найденные дыры. Потому то они и публичные скрипты, так как уровень их безопасности всегда наиболее высок чем у скриптов, которые написаны специально под определенный проект. Если бы эти скрипты не были бы публичными, я уверен что и половины критических уязвимостей никто бы не нашел Насчет XSS - тут знание исходного кода скрипта не нужно. Достаточно элементарно это проверять путем ввода кусков JavaScript'a в разные текстовые поля, которые затем выводятся в HTML-код. Это сообщение отредактировал(а) PHP-DIRECTOR - 24.6.2005, 09:00 -------------------- Могу все, но ничего не умею :-) |
|||
|
||||
| Wolf1994 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 5.10.2004 Репутация: 7 Всего: 29 |
Возможно я становлюсь немного параноиком, но - есть ли риск взлома всей БД с администраторским паролем, если станут известны только, допустим, имена двух таблиц (в них никаких логинов нет)? И вообще если перед занесением в таблицу я обработал переменные эскэйпом, велик ли шанс их взлома?
|
|||
|
||||
| Black |
|
||||||||
|
Web-Development ![]() ![]() Профиль Группа: Участник Сообщений: 980 Регистрация: 15.8.2004 Репутация: 7 Всего: 45 |
Через скрипты по именам таблиц не взломают, да и пароль от БД вряд ли кто придумает как получить. Но может будут ломать именно сервер (аля Apache, сам MySQL), а это страшнее просто дырявого скрипта, если кому-то удастся получить права root
Пропусти все переменные через
и спи спокойно. Вроде бы выше уже писал об этом. Если данные из БД будут выводится в HTML, то пропускай их также и через
А вообще: все что создано руками человека можно взломать Насчет сервера не волнуйся, вроде у хороших хостингов компы никто не ломает (например: Мастерхост, Rusonix и тд.) Исключение ValueHost А может и ломают, но только все об этом молчат Главное правило безопасности: если у тебя нечего взять, то и пытаться взломать никто не будет. -------------------- Могу все, но ничего не умею :-) |
||||||||
|
|||||||||
| Wolf1994 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 5.10.2004 Репутация: 7 Всего: 29 |
Я за свой хостинг спокоен (RBC), если взломают, то это их дело. Меня больше беспокоит то, что зависит от меня - в этом они мне не помогут. |
|||
|
||||
| Black |
|
|||
|
Web-Development ![]() ![]() Профиль Группа: Участник Сообщений: 980 Регистрация: 15.8.2004 Репутация: 7 Всего: 45 |
Wolf1994
от тебя зависит 1) Правильные права на доступ к файлам, папкам 2) Корректные и безопасные скрипты. Если у тебя тариф какого-нибудь выделенного сервера, то тут уже зависит и настройка Apache, PHP, MySQL и т.д. Если виртуальный хостинг, то настройка сервера от тебя не зависит, т.к. она одна для всех пользователей на этом хостинге. Кстати, почитай это: http://forum.ruweb.net/viewthread.php?tid=225 Это сообщение отредактировал(а) PHP-DIRECTOR - 24.6.2005, 22:19 -------------------- Могу все, но ничего не умею :-) |
|||
|
||||
| Wolf1994 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 5.10.2004 Репутация: 7 Всего: 29 |
А есть ли какие-то особенности у хостинга с правами? А то, на этом, я вынужден ставить на скрипты -755, на файлы для чтения - 777, иначе не читаются/не работают. Я спросил у службы поддержки - не опасно ли это, мне ответили, что чтобы что-то сделать вредоносного, надо иметь доступ по FTP к сайту, а так безопасно.
|
|||
|
||||
![]()
|
| Правила форума "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. |