Главная
Скачать (Download)
Dreamweaver CS6
Dreamweaver CS5
Dreamweaver CS4
Dreamweaver 8
Dreamweaver MX 2004
Dreamweaver 4
Уроки (Tutorials)
Видеоуроки new!!!

Fireworks
ЧаВо
Документация
Статьи
Программы и скрипты
Бесплатные шаблоны
Каталог сайтов
Форум
Карта сайта
Контакты



Документация - Главная
- Macromedia Dreamweaver
- CSS
- Раскрутка
- PHP
- SQL
- Дизайн [1 2]
- Java
- Разное

главная > статьи >

Безопасность PHP+MYSQL+Apache

Итак был вопрос
  .........
  Есть у нас php скрипт, который обращается к MYSQL БД.
  Если мы впишем в скрипт, условно говоря, root mysql'я,
  то можем ли мы рассчитывать на безопасность действий (адекватность
  и однозначность написанных операций) с БД?
  Можем ли мы рассчитывать на безопасное хранение пароля в пхп-скрипте?
  ........

1) Лучше создать еще одного пользователя в базе mysql и урезать ему права..   -

2) Все поключения к базе из PHP осуществлять через так называемые
  конфигурационные файлы. Отсюдова подробнее.

Итак для доступа в mySQL через PHP создаем файлы дополнительные
  (конфигурационные) файлы
  setup.php & config.php

File setup.php
  <?
  $dbName="dbName";
  $dbUser="dbuser";
  $dbPass="dbuserpass";
  $dbServer="dbserver";
  $adminmail="твое\@мыло";
  ?>
  enf of file
  далее создаем файл config.php
  File config.php
  <?
  function db_err($handle, $message) {
  printf("%s: %d: %s\n", $message,
  mysql_errno($handle),mysql_error($handle));
  die();
  }

function db_connect() {

global $dbName,$dbUser,$dbPass,$dbServer;
  $dbh = mysql_connect($dbServer,$dbUser,$dbPass);
  if(!$dbh) { db_err($dbh, "mysql_connect"); }
  $res = mysql_select_db($dbName);
  if(!$res) { db_err($dbh, "mysql_select_db"); }
  return($dbh);

}

?>
  end of file

потом выносим эти файлы за пределы сервера, и наконец подключаем эти файлы   в
  тех файлах где будем работать с базой.

<?
  require("ваш_путь/setup.php");
  require("ваш_путь/config.php");
  ?>

и в конечном итоге получаем красивый и вполне безопастный код.

$dbc=db_connect();
  $query = "SELECT .................";
  $result = mysql_query($query,$dbc);

--------------------------------------------------------------------------------


  Как защитить /etc/passwd от просмотра?
  PHPClub

В конфигурационном файле сервера Apache, в контексте соответствующей
  директивы <Directory> указать(или в .htaccess):

php_admin_value open_basedir /home/null/www/htdocs
  php_admin_value doc_root /home/null/www/htdocs


  --------------------------------------------------------------------------------


  инклуды (.inc)
  AnToXa

часто приходится хранить всякие везде-используемые данные/функции в отдельных
  файлах, и потом подключать,
  используя include[_once]/require[_once].

но эти файлы обычно не парсятся сервером, т.е. их можно смотреть через
  браузер, этого мы и хотим избежать.
  давать таким файлам расширение .php не очень правильно, т.к. их можно вызвать
  через браузер, и,
  хотя мы и не увидим содержимое, но, наверняка, у нас начнут вылазить
  какие-либо ошибки PHP,
  т.к. код внутри файлов обычно расчитан на исполнеие в определенном
  окружении(наличие коннекта к базе/
  чтение файлов/определенные значения констант/переменных).

есть 2 выхода по сути похожих
  1. поместить все .inc файлы за пределами DOCUMENT_ROOT Apache
  2. написать .htaccess чтобы запретить доступ ко всем файлам с определенными
  расширениями
  Пример.
  <FilesMatch "\.(inc|sql|...другие расширения...)$">
  order deny,allow
  # запретить доступ отовсюду
  deny from all
  #разрешить доступ с вашего ip(если он у вас, конечно, статический)
  allow from <ваш ip>
  </FilesMatch>


  --------------------------------------------------------------------------------

Автор: Дмитрий Рождественский
Источник: articles.org.ru

главная > статьи >

Реклама