Запретить доступ к CGI-сценариям на основе источника HTML-формы - PullRequest
0 голосов
/ 02 декабря 2010

У меня есть веб-сайт с поддержкой MODx, который сосредоточен вокруг формы. Доступ к веб-странице с формой ограничен для зарегистрированных пользователей (обрабатывается MODx). Пользователь заполняет несколько текстовых записей, выбирает файл для загрузки, затем нажимает кнопку Отправить. Указанным действием является CGI-скрипт submit.py в каталоге / cgi-bin, который регистрирует отправленную информацию и сохраняет файл, и он отлично выполняется.

Единственное, что меня беспокоит, это то, что любая форма (очевидно), если они указывают правильный URL-адрес для атрибута действия <form>, похоже, может связать их форму с моим CGI-сценарием. Это означает, что они могут написать следующее на своей странице:

<form action="http://my-site.com/cgi-bin/submit.py">
    <!-- blah blah blah -->
</form>

и данные будут отправлены в мою форму CGI и обработаны (нежелательное поведение).

У меня такой вопрос: Есть ли способ ограничить выполнение скрипта на основе HTML-формы, которая отправила данные? Я что-то упускаю действительно очевидное?

Я искал в Интернете и обнаружил слегка связанную проблему CSRF, но если помимо аутентификации на основе токенов есть способ предотвратить несанкционированное использование сценария CGI, мне бы очень хотелось его услышать.

1 Ответ

0 голосов
/ 02 декабря 2010

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

Хотя его также можно получить и отправить.

Проверка реферера бесполезна, поскольку он легко подделан или отсутствует (некоторые прокси фильтруют его).

Короче говоря, без использования токена для его смягчения у вас возникли проблемы.За исключением того, что у всех в сети есть эта проблема:)

...