-
Notifications
You must be signed in to change notification settings - Fork 33
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Guidelines für Sicherheit (Injektions, CSRF, ...) #60
Comments
Aus Slack:
$_csrf_key = ‘meinkey_addon_subpage’;
$csrf = rex_csrf_token::factory($_csrf_key);
$func = ‘delete’;
if ($func = ‘delete’) {
if (!$csrf->isValid()) {
echo rex_view::error(rex_i18n::msg(‘csrf_token_invalid’));
} else {
// meine deleteaktion
}
}
$delete_link = http_build_url(“index.php?page=addon/subpage”, [“delete” => “func”] + $csrf->getUrlParams() ),
|
bei 2b verstehe ich die Notwendigkeit und die nötige Anpassung nicht. |
https://wiki.selfhtml.org/wiki/Grundlagen/sichere_Cookies (alternativ beim Hosting) Danke @engel4u @skerbis für die Diskussion dazu im Chat. Welche Angaben würdest du empfehlen? @skerbis |
https://observatory.mozilla.org und die empfohlenen Schritte beim Hoster durchführen. Erlaubt es das Hosting nicht, dann hier. |
https://github.com/alexplusde/yform_spam_protection/ und https://github.com/yakamara/redaxo_yform_docs/blob/master/de_de/demo_kontakt-spamschutz.md passen hier ebenfalls in eine Doku-Tricks-Seite rein, da Versand von Bestätigungs-E-Mails an fremde Postfächer ohne Spamschutz zum Sicherheitsproblem werden kann. (Abwertung der Domain, Blacklist, Versand von Phishing-Mails) |
https://securityheaders.com/ kennt das jemand und ist das hier evtl. auch interessant!? |
@aeberhard https://securityheaders.com/ ist in https://observatory.mozilla.org integriert |
Ah, hatte ich nicht gesehen :) |
|
Warum geschlossen, dann wieder geöffnet? Was fehlt noch bzw was soll geändert werden? |
ich möchte es für Ergänzungen gerne offen lassen. Das Thema ist immer aktuell :-) |
Ich würde mir wünschen, ein Kapitel dem Thema Sicherheit zu widmen und best practice bezogen auf Redaxo zu veröffentlichen. Dies könnte man zunächst in den Tricks entwickeln und dann gerne auch in die offizielle Doku überführen, wenn ausgereift.
SQL-Injection in rex_sql verhindern
aus Slack notiert:
Falsch:
...->getQuery("SELECT * FROM table WHERE id ='.$_GET['id'].'')
Hier könnte man mit
$_GET['id']
eben fiese Sachen injezieren.Ein bisschen besser, aber immer noch falsch:
...->getQuery("SELECT * FROM table WHERE id ='.rex_request('id', "int", 0).'')
Warum immer noch falsch? Weil das Konstrukt nicht aufgeht, wenn du bspw. einen String erwartest.
Richtig:
...->getQuery("SELECT * FROM table WHERE id =?', array(rex_request('id', "int", 0)))
Ersetzt den Platzhalter
?
mit dem Wert aus dem Array (2. Parameter)Noch schöner:
...->getQuery("SELECT * FROM table WHERE id =:id', array(":id" => rex_request('id', "int", 0)))
Ersetzt den Platzhalter
:id
mit dem Wert aus dem assoziativen Array. So behältst du den besten Überblick, wenn es darum geht, mehrere Parameter zu übergeben. Dabei werden die Werte sauber übergeben und eingesetzt, eine SQL-Injection ist dann nicht möglich.CSRF in rex_form, YForm und eigenen Formularen verhindern
In Redaxo 5.5 wurde Schutz vor Crosssite-Scripting eingebaut. Hier würde ich mir von @dergel wünschen, ein paar Guidelines an Entwickler zusammenzustellen.
Weitere Themen
The text was updated successfully, but these errors were encountered: