Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]624[/thread]

CGI Sicherheit: Vermeidung gefährlicher Inhalte (Seite 6)

Leser: 2


<< |< 1 ... 3 4 5 6 7 8 9 ... 17 >| >> 166 Einträge, 17 Seiten
Gast Gast
 2005-12-15 21:25
#6168 #6168
[quote=esskar,15.12.2005, 19:19]exclude könnte schlecht sein, da muss mann ggf zuviel angeben...[/quote]
Was würdest du stattdessen vorschlagen?
Antworten mit Zitat
renee
 2005-12-15 23:43
#6169 #6169
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Eine Whitelist, wie esskar schon vorgeschlagen hat. Wenn Du z.B. nur <br> zulassen willst, dann musst Du alle anderen HTML-Tags als "Exclude"-Tags notieren. Dabei uebersieht man vielleicht ein paar Tags. Wenn Du aber eine Whitelist hast, dann brauchst Du nur das <br> aufzuschreiben...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Antworten mit Zitat
pq
 2005-12-16 01:59
#6170 #6170
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
ich würde stattdessen bbcode vorschlagen. ist vermutlich das einfachste
und hier damit das sicherste. auf alles andere HTML::Entities loslassen.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Antworten mit Zitat
Gast Gast
 2005-12-16 12:17
#6171 #6171
Danke für eure Vorschläge.
Werde das jetzt mal schrittweise umsetzen.

Eine Frage ist mir noch eingefallen:
wie kann ich feststellen ob ein Formular von meinem Skript stammt oder ob da jemand Formulardaten direkt an das Skript sendet?
Antworten mit Zitat
GwenDragon
 2005-12-16 12:57
#6172 #6172
User since
2005-01-17
14577 Artikel
Admin1
[Homepage]
user image
[quote=Bauhaus,16.12.2005, 11:17]wie kann ich feststellen ob ein Formular von meinem Skript stammt oder ob da jemand Formulardaten direkt an das Skript sendet?[/quote]
Wenn du beim Holen des Formulars eine ID als verstecktes Feld hinzufügst.
Diese verschlüsselte ID sollte sich bei jedem holen ändern, aber mit Entschlüsselung bestimmte Eigenschaften haben, die nur du mit in die ID gegeben haben kannst.

unverschlüssete ID:
Fortlaufende_Nummer+Mein_besondere_Kennung+timestamp\n\n

<!--EDIT|GwenDragon|1134731054-->
die Drachin Gwendolyn
Antworten mit Zitat
Gast Gast
 2005-12-16 14:25
#6173 #6173
[quote=GwenDragon,16.12.2005, 11:57]Wenn du beim Holen des Formulars eine ID als verstecktes Feld hinzufügst.
Diese verschlüsselte ID sollte sich bei jedem holen ändern, aber mit Entschlüsselung bestimmte Eigenschaften haben, die nur du mit in die ID gegeben haben kannst.

unverschlüssete ID:
Fortlaufende_Nummer+Mein_besondere_Kennung+timestamp[/quote]
Meinst du
<input type="hidden" ... > ?
Antworten mit Zitat
Taulmarill
 2005-12-16 14:41
#6174 #6174
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
[quote=Bauhaus,16.12.2005, 11:17]Eine Frage ist mir noch eingefallen:
wie kann ich feststellen ob ein Formular von meinem Skript stammt oder ob da jemand Formulardaten direkt an das Skript sendet?[/quote]
ich muss gwendragon wiedersprechen. die antwort lautet imo "das kannst du nicht".

der webbrowser ist ein programm auf dem rechner des benutzers welches sich deiner kontrolle entzieht. alle kontrollmechanissmen die voraussetzen, dass der browser irgendetwas bestimmtes tut oder verhindert können umgangen werden. wenn ich also daten bei dir einschleusen will, dann kann ich mir erst einmal das formular von deiner seite holen, und dann eine entsprechende antwort basteln. gehe immer davon aus, dass formulardaten alles mögliche enthalten können. es sind usereingaben und sollten auch so behandelt werden.
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
Antworten mit Zitat
Gast Gast
 2005-12-16 16:43
#6175 #6175
[quote=Taulmarill,16.12.2005, 13:41][quote=Bauhaus,16.12.2005, 11:17]Eine Frage ist mir noch eingefallen:
wie kann ich feststellen ob ein Formular von meinem Skript stammt oder ob da jemand Formulardaten direkt an das Skript sendet?[/quote]
ich muss gwendragon wiedersprechen. die antwort lautet imo "das kannst du nicht".

der webbrowser ist ein programm auf dem rechner des benutzers welches sich deiner kontrolle entzieht. alle kontrollmechanissmen die voraussetzen, dass der browser irgendetwas bestimmtes tut oder verhindert können umgangen werden. wenn ich also daten bei dir einschleusen will, dann kann ich mir erst einmal das formular von deiner seite holen, und dann eine entsprechende antwort basteln. gehe immer davon aus, dass formulardaten alles mögliche enthalten können. es sind usereingaben und sollten auch so behandelt werden.[/quote]
Irgendwo hab ich mal gelesen dass die Formularherkunft per $ENV{'REMOTE_ADDR'} ermittelt werden kann; aber wie das funktionieren soll ist mir absolut schleierhaft.
Kennt jemand von euch eine solche Methode?
Antworten mit Zitat
Gast Gast
 2005-12-16 16:47
#6176 #6176
[quote=pq,16.12.2005, 00:59]ich würde stattdessen bbcode vorschlagen. ist vermutlich das einfachste
und hier damit das sicherste. auf alles andere HTML::Entities loslassen.[/quote]
Ich möchte aber sehr gern das Programm HtmlArea einsetzen und den User damit von der Eingabe eigener HTML Tags befreien.
Antworten mit Zitat
Gast Gast
 2005-12-16 16:59
#6177 #6177
[quote=renee,15.12.2005, 22:43]Eine Whitelist, wie esskar schon vorgeschlagen hat. Wenn Du z.B. nur <br> zulassen willst, dann musst Du alle anderen HTML-Tags als "Exclude"-Tags notieren. Dabei uebersieht man vielleicht ein paar Tags. Wenn Du aber eine Whitelist hast, dann brauchst Du nur das <br> aufzuschreiben...[/quote]
Also wenn ich Formatierungs-Tags und eventuell auch noch Tables zulasse, dann wird die whitelist doch sehr umfangreich.
Als blacklist habe ich jetzt:

script
applet
src
inline
embed
system
exex
eval
grep
xterm
xhost
virtual
include

Fällt euch dazu noch was ein?

Edit:
hier nochmal der Code zur Liste
Code: (dl )
1
2
$form{$key} =~ s/(<\s*)($exclude)/<\!\-\-$1x$2/ig;
$form{$key} =~ s/(<\s*\/+)($exclude\s*>)/\$1x$2\-\-\>/ig;
\n\n

<!--EDIT|Bauhaus|1134745375-->
Antworten mit Zitat
<< |< 1 ... 3 4 5 6 7 8 9 ... 17 >| >> 166 Einträge, 17 Seiten



View all threads created 2005-12-12 17:10.