![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| 4epT |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 784 Регистрация: 13.8.2007 Репутация: нет Всего: 3 |
Всем привет. Я в php новичок, поэтому задам наверное простые и очень глупые вопросы
Имеется сайт, в котором все классы для работы с БД (так называемые ДАО), хранятся в директории classes. То есть если обращаться через доменное имя, то - www.domain_name.ru/classess/... Может ли как нибудь пользователь просмотреть содержимое этих файлов ? и как мне их защитить ? (там хранятся пароли, url к БД и т.п.). Второе это sql инъекции ... я параметры не экранирую, но там где идут выборки по id, я привожу его к int. Пробовал подставлять в запросы ковычки, запятые и др. И хотел спросить, может кто то сможет бегло протестить сайт на мелкие уязвимости ? Заранее спасибо ) |
|||
|
||||
| Aliance |
|
||||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 14 Всего: 137 |
Сделайте такую структуру проекта: - classes - public_html Входную точку поставьте в папку public_html (document_root), тогда из веба не попасть будет в classes, а из файлов public_html можно:
Добавлено через 1 минуту и 11 секунд
Где ожидается id - можно ограничиться таким приведением, а что вы делаете в остальных ситуациях? Если ничего - значит инъекции есть. |
||||
|
|||||
| 4epT |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 784 Регистрация: 13.8.2007 Репутация: нет Всего: 3 |
У меня примерно такая же струкрутра, А смогу я достучаться и получить содержимое файлов если буду обращаться вот так - www.domain_name.ru/public_html/classess/file_name.php ? В остальных случая я экранирую еще с помощью mysql_escape_string, это поможет от SQL инъекций ? |
||||
|
|||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 26 Всего: 101 |
||||
|
||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 14 Всего: 137 |
Вы не поняли то, что я написал. document_root Устанавливается в папку public_html, таким образом www.domain_name.ru будет ссылаться на папку ./что-то/еще_что-то/public_html и подключить внутри нее файл из соседней папки classes можно просто сделав require '../classes/файл.php'
поможет, правда лучше использовать mysql_real_escape_string. |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 26 Всего: 101 |
4epT, с точки зрения клиента, корень сайта - настроенный на web-сервере document root, за его пределы клиент обратиться не может.
php же работает на сервере и имеет непосредственный доступ к файловой системе, поэтому может обращаться к файлам за пределами document root (к любым файлам, на которые у него есть права). Aliance вам советует вынести за эти пределы все файлы, к которым пользователь не должен иметь прямой доступ. допустим корень сайта - /xxx/yyy/public_html тогда адрес www.domain.com/favicon.ico ведет к файлу /xxx/yyy/public_html/favicon.ico если часть ваших скриптов лежит в /xxx/yyy/classes, то к файлу /xxx/yyy/classes/myclass.php пользователь никак не может обратиться, но скрипт, скажем /xxx/yyy/public_html/index.php (он же www.domain.com/index.php), может использовать эти файлы:
|
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
если там нет прямо в потоке документа echo 'password'; , то содержимое этих файлов никто не увидит, так как вэб-сервер пропустит эти файлы через пхп-машину |
|||
|
||||
![]()
|
| Правила форума "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. |