.htaccess — Часть 1

Для чего нужен .htaccess и его синтаксис?

Запреты на доступ:

  • Запрет на все файлы
  • Разрешить доступ только с определенного ip
  • Запретить доступ только для определенного ip
  • Запрет доступа на группу файлов по маске
  • Запрет доступа на конкретный файл

Установка пароля:

  • Пароль на директорию
  • Пароль только на 1 файл
  • Пароль на группу файлов
  • Есть 3 директории (две из них вложены в первую), доступ к ним — по паролю. Но, и всех, вошедших по паролю в директорию 1 нельзя пускать в две оставшиеся директории. Как сделать?

Перенаправления:

  • Перенаправление (редирект) посетителя на другой url
  • Показ разных страниц, в зависимости от IP адреса посетителя:
  • Перенаправление посетителя при запросе определенных страниц:
  • Как сделать стартовой другую страницу?
  • Как заставить Апач обрабатывать SSI директивы?
  • Как заставить Апач выполнять php код в файлах с расширением отличным от php?
  • Как самому обрабатывать ошибки Апача?
  • Как поставить запрет на отображение содержимого директории при отсутствии индексного файла?

Кодировки:

  • Можно ли указать кодировку на все файлы, в которой по умолчанию получает документы браузер?
  • Можно ли указать кодировку на загружаемые файлы?
  • Я закачиваю на сайт файл в одной кодировке, а Apache их перекодирует, как избавиться?
  • Как применять различные кодировки для различных типов файлов?

Частые ошибки:

  • Создал файл .htaccess, но сервер выдает 500 ошибку — Internal Erorr

Read more

Делаем передачу параметров в PHP безопасными

Написал небольшую функцию, которая заменяет «опасные» символы на безопасные:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 function sweet_fnc($string)  {  
        $string = str_replace("< ","",$string);  
        $string = str_replace(">","",$string);  
        $string = str_replace('\\\"',"",$string);  
        $string = str_replace(":","",$string);  
        $string = str_replace("!","",$string);  
        $string = str_replace("\r","",$string);  
        $string = str_replace("\n","",$string);  
        $string = str_replace("%","",$string);  
        $string = str_replace("^ +","",$string);  
        $string = str_replace(" +$","",$string);  
        $string = str_replace(" +","",$string);  
        $string = str_replace("!","",$string);  
        $string = str_replace("@","",$string);  
        $string = str_replace("#","",$string);  
        $string = str_replace("$","",$string);  
        $string = str_replace("%","",$string);  
        $string = str_replace("&","",$string);  
        $string = str_replace("*","",$string);  
        $string = str_replace("(","",$string);  
        $string = str_replace(")","",$string);  
       
       
        return $string;  
};

Что нужно знать при написании скрипта

Подведу черту над своими знаниям в области построения защищенных сайтов. Некоторые методы давно всем известны, но они занимают большую нишу в построении защиты.

Read more

Как сбросить пароль для root пользователя в MySQL

Для смены пароля вам нужен будет доступ по SSH или, по другому, к виртуальной клавиатуре сервера. Если у вас нет доступа к командной строке — этот метод вам не подходит.

И так, заходим по root на сервер и в командной строке:

  1. останавливаем сервис mysql:
    1
    service mysqld stop
  2. запускаем службу mysql с следующими ключами, в зависимости от ОС, пути могут быт другими
    1
    /usr/bin/mysqld_safe --skip-grant-tables --user=root &amp;
  3. запускаем клиента mysql
    1
    mysql -u root
  4. и делаем SQL-запрос
    1
    UPDATE mysql.USER SET Password=PASSWORD(’Ваш новый пароль’) WHERE USER=’root’; FLUSH PRIVILEGES;
  5. теперь остается только перезапустить mysql и можно заходить под вашим новым паролем
    1
    service mysqld restart

Как проверить есть ли на хостинге PHP?

Все просто. Узнаем установлен ли PHP на сайте.

Создаем файлик: test_php.php

1
2
3
<?php
echo "PHP is working";
?>

И загружаем его на сервер и запускаем через браузер. Если вы видите текст — значить все в порядке.

Если хотите узнать, что и как подключено в PHP

напишите:

1
2
3
<?php
phpinfo();
?>