Как правильно оформлять php файлы?

193
27 января 2018, 00:10

Вот у меня допустим есть простенький скрипт авторизации:

if (isset($_SESSION['login'])) {
{
    echo('Welcome, my dear user!');
}
else
{
    die('hacking attempt');
}

Не будет ли чего-либо опасного я если я просто выложу этот файл на сервер? Не сможет ли какой-либо "хитрый" юзер, не пройдя авторизацию?

Вот еще пример, где пользователь сможет без труда использовать php файлы, тупо меняя значения в адресной строке

if(!empty($_GET['login']) && isset($_GET['login']))
{
    echo('You are! '.$_GET['login']);
}
else
{
    die('hacking attempt');
}

Вообще меня смутило то, что я видел на сайте: https://bezramok-tlt.ru/?mode=2&post=4

 //Ключ защиты
 if(!defined('BEZ_KEY'))
 {
     header("HTTP/1.1 404 Not Found");
     exit(file_get_contents('./../404.html'));
 }

Я не совсем понял что это за ключ защиты и для чего он нужен. Но он явно защищает php от "лишнего" выполнения, когда это выполнение не было запрошено на предыдущем шаге.

Слышал также про "единую точку входа". Возможно это она. Если честно - я не совсем понял чём речь... В моём представлении это некоторый файл, проверяющий есть ли доступ у юзеров к тому или иному файлу и выдающий доступ ему. (т.е) похоже на то что было выше...

А сам вопрос такой: Как правильно оформлять и стоит ли делать защиту типа BEZ_KEY (пример написано выше).

Answer 1

Вообще-то, если надо использовать параметры из GET или POST запросов, входные данные необходимо фильтровать. Для этого есть удобная функция filter_input с различными флагами. Там есть коменты от пользователей, которые приводят примеры, которые помогут вам улучшить подобный код

!empty($_GET['login']) && isset($_GET['login'])

Это уже выглядит вчерашним днем

READ ALSO
Php2 шифрование

Php2 шифрование

Здравствуйте! Есть ли способы обратимо зашифровать строку на php версии 2x? openssl_encrypt, crypt включены с 3 и 4 версии php соответственно

152
Стоит ли так рефакторить? Замена условий на простые математические формулы

Стоит ли так рефакторить? Замена условий на простые математические формулы

Периодически делаю мелкий рефакторинг своего кода над текущим проектом, я раньше вообще не занимался этим и только начинаю изучать это делоВот...

240
Механизм изменения цены на сайтах

Механизм изменения цены на сайтах

Имеется несколько интернет-магазиновКак можно сделать так, что если человек уже был на одном из сайтов, следующий сайт при отправки заявки...

274
Вывести метод из другого класса opencart 2

Вывести метод из другого класса opencart 2

Подскажите как вывести метод из system/library оба файла лежат в одной папке library

234