Я сделал интеграцию платежного шлюза на существующем веб-сайте. Платежный шлюз дал мне API, который я использовал и сделал кодирование и сохраненный его в файле PHP pay.php
Как защитить файл php
У меня есть форма оформления заказа на главном сайте и по нажатию представить, он посылает все необходимые данные для pay.php
через post
а затем этот файл делает все остальное и отправляет данные на платежный шлюз.
Поскольку этот файл pay.php
хранит сенситивные данные, я хочу его защитить, чтобы никто другой не мог получить к нему доступ через веб-браузер, например, ввод http://domain.com/pay.php
или его возможность загрузить.
Теперь, когда я знаю, что обычно вы не можете просто скачать .php
файлов, я видел сайт на днях, который был способен загрузить мой блог Wordpress вместе с файлами .php
.
Также каждый раз, когда выполняется файл pay.php
, создается ссылка для оплаты, поэтому мне нужно убедиться, что только этот сайт http://www.domain.com
способен использовать этот файл и не имеет стороннего участника.
У меня уже есть несколько идей в моей голове, таких как ограничение доступа с использованием удаленного IP и таких, но хотелось бы знать, как наилучшим образом решить проблему.
Поскольку 'pay.php' рассчитывает получить POST, вы не можете запретить браузеру доступ к нему. Вы можете убедиться, что он отправляет сообщение об ошибке, если не все необходимые данные POST присутствуют (например, некоторые действительные данные токена или сессии). Хотя можно проверить '$ _SERVER ['HTTP_REFERER']', чтобы быть уверенным, что он пришел из ожидаемой формы, это совсем не надёжно и сломается, возможно, больше пользователей, чем предотвращает неправильный доступ. –
При использовании PHP никто не может видеть или загружать ваш код через веб-браузер. Пока ваш PHP-файл хранится на сервере с включенным PHP, вам не нужно беспокоиться об этом. – Havenard
Можно ограничить POST с помощью перезаписи URL: http://stackoverflow.com/questions/6335231/prevent-brower-access-to-a-form-handler-php-file –