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

Поиск:

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


Опытный
**


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

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



Всем привет. Я в php новичок, поэтому задам наверное простые и очень глупые вопросы smile

Имеется сайт, в котором все классы для работы с БД (так называемые ДАО), хранятся в директории classes. То есть если обращаться через доменное имя, то - www.domain_name.ru/classess/... Может ли как нибудь пользователь просмотреть содержимое этих файлов ? и как мне их защитить ? (там хранятся пароли, url к БД и т.п.).

Второе это sql инъекции ... я параметры не экранирую, но там где идут выборки по id, я привожу его к int. Пробовал подставлять в запросы ковычки, запятые и др.

И хотел спросить, может кто то сможет бегло протестить сайт на мелкие уязвимости ?  smile Просто сайт делал на заказ для знакомых, хотелось бы что бы было как меньше уязвимостей )

Заранее спасибо )
PM MAIL   Вверх
Aliance
Дата 22.10.2012, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

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



Цитата(4epT @  21.10.2012,  23:06 Найти цитируемый пост)
Имеется сайт, в котором все классы для работы с БД (так называемые ДАО), хранятся в директории classes. То есть если обращаться через доменное имя, то - www.domain_name.ru/classess/... Может ли как нибудь пользователь просмотреть содержимое этих файлов ? и как мне их защитить ? (там хранятся пароли, url к БД и т.п.).

Сделайте такую структуру проекта:
- classes
- public_html

Входную точку поставьте в папку public_html (document_root), тогда из веба не попасть будет в classes, а из файлов public_html можно:
Код

require '../classes/dao.php';


Добавлено через 1 минуту и 11 секунд
Цитата(4epT @  21.10.2012,  23:06 Найти цитируемый пост)
Второе это sql инъекции ... я параметры не экранирую, но там где идут выборки по id, я привожу его к int. Пробовал подставлять в запросы ковычки, запятые и др.

Где ожидается id - можно ограничиться таким приведением, а что вы делаете в остальных ситуациях? Если ничего - значит инъекции есть.
PM MAIL WWW ICQ Skype   Вверх
4epT
Дата 22.10.2012, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата

Сделайте такую структуру проекта:
- classes
- public_html

Входную точку поставьте в папку public_html (document_root), тогда из веба не попасть будет в classes, а из файлов public_html можно:
Код

require '../classes/dao.php';



У меня примерно такая же струкрутра, А смогу я достучаться и получить содержимое файлов если буду обращаться вот так - www.domain_name.ru/public_html/classess/file_name.php ?

В остальных случая я экранирую еще с помощью mysql_escape_string, это поможет от SQL инъекций ?
PM MAIL   Вверх
baldina
Дата 22.10.2012, 11:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



PM MAIL   Вверх
Aliance
Дата 22.10.2012, 11:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

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



Цитата(4epT @  22.10.2012,  11:44 Найти цитируемый пост)
У меня примерно такая же струкрутра, А смогу я достучаться и получить содержимое файлов если буду обращаться вот так - www.domain_name.ru/public_html/classess/file_name.php ?

Вы не поняли то, что я написал. document_root Устанавливается в папку public_html, таким образом www.domain_name.ru будет ссылаться на папку ./что-то/еще_что-то/public_html и подключить внутри нее файл из соседней папки classes можно просто сделав require '../classes/файл.php'

Цитата(4epT @  22.10.2012,  11:44 Найти цитируемый пост)
В остальных случая я экранирую еще с помощью mysql_escape_string, это поможет от SQL инъекций ? 

поможет, правда лучше использовать mysql_real_escape_string.
PM MAIL WWW ICQ Skype   Вверх
baldina
Дата 22.10.2012, 13:57 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 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), может использовать эти файлы:
Код

<?php
include '../classes/myclass.php'; // /xxx/yyy/classes/myclass.php

PM MAIL   Вверх
bars80080
Дата 22.10.2012, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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



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

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



Цитата(4epT @  21.10.2012,  22:06 Найти цитируемый пост)
То есть если обращаться через доменное имя, то - www.domain_name.ru/classess/... Может ли как нибудь пользователь просмотреть содержимое этих файлов ? и как мне их защитить ? (там хранятся пароли, url к БД и т.п.).

если там нет прямо в потоке документа echo 'password'; , то содержимое этих файлов никто не увидит, так как вэб-сервер пропустит эти файлы через пхп-машину
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.1156 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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