Frage

Ich habe eine Website, angetrieben durch MODx, die um eine Form zentriert ist. Der Zugriff auf die Web-Seite mit dem Formular ist nur für registrierte Mitglieder beschränkt (gehandhabt durch MODx). Der Benutzer füllt ein paar Texteinträge, wählt eine Datei zum Hochladen, dann Treffer vorlegen. Die angegebene Aktion ist ein submit.py CGI-Skript unter / cgi-ist, dass die übermittelten Informationen und speichert die Datei protokolliert, und es führt perfekt.

Die einzige Sorge, die ich habe ist, dass jeder Form (scheinbar), wenn sie die richtige URL für das <form> action-Attribut angeben zu können, scheint ihre Form zu meinem CGI-Skript verknüpfen. Was bedeutet, dass sie die folgende auf einer eigenen Seite schreiben:

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

und die Daten werden auf meine CGI-Form gesendet und verarbeitet werden (unerwünschtes Verhalten).

Meine Frage lautet: ist es eine Möglichkeit, die Ausführung des Skripts zu beschränken auf dem HTML-Formular basiert, das die Daten gesendet? Bin ich etwas fehlt wirklich klar?

habe ich gesucht online und fand ein etwas ähnliches Problem von CSRF, aber wenn es eine Möglichkeit gibt abgesehen von Token-Authentifizierung nicht autorisierte Verwendung des CGI-Skripts zu verhindern, würde ich gerne hören.

War es hilfreich?

Lösung

Sie können eine einmal Gebrauch machen Token, das muss mit dem Formular gesendet werden, um sicherzustellen, dass es gültig ist (das ist, was Sie erwähnt).

Obwohl diese gepackt und auch gesendet werden.

Die Nutzung der Referrer Überprüfung ist nicht sinnvoll, weil es leicht gefälscht ist oder nicht vorhanden (einige Proxies filtern).

Kurz gesagt, ohne die Token es zu mildern, sind Sie in Schwierigkeiten. Außer allen anderen auf dem Netz hat dieses Problem:)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top