Seite 9 von 12

Verfasst: 14.10.2006 11:51
von larsneo
Schließlich ist .txt ja die einzige Alternative zu .php zum ausführen von Scripten und könnte so gut unterbunden werden.
die einzig wirklich sichere variante remote code injections zu unterbinden ist imho via php.ini allow_url_fopen=off und (da die php group leider mal wieder ein wenig nachlässig gewesen ist) der einsatz von suhosin gegen php://input bzw data:// injektionen - eine möglichkeit die im shared hosting leider meistens nicht zu realisieren ist.
dass darüberhinaus register_globals=off stehen muss, sollte sich zwischenzeitlich hoffentlich rumgesprochen haben.

Verfasst: 14.10.2006 13:07
von mgutt
larsneo hat geschrieben:
Schließlich ist .txt ja die einzige Alternative zu .php zum ausführen von Scripten und könnte so gut unterbunden werden.
die einzig wirklich sichere variante remote code injections zu unterbinden ist imho via php.ini allow_url_fopen=off und (da die php group leider mal wieder ein wenig nachlässig gewesen ist) der einsatz von suhosin gegen php://input bzw data:// injektionen - eine möglichkeit die im shared hosting leider meistens nicht zu realisieren ist.
dass darüberhinaus register_globals=off stehen muss, sollte sich zwischenzeitlich hoffentlich rumgesprochen haben.
Hi,

jeder hat seine Gründe etwas zu integrieren oder nicht. Aber zum Thema "rumgesprochen". Frag mal nen Anfänger was das überhaupt heißt ;)

Du setzt doch schon recht viel voraus und mein Ziel ist es, dass eine .htacces mit in den Thread "So mache ich mein Board sicher" kommt. Man sollte daher über Sinn und Unsinn der einzelnen Zeilen diskutieren :)

Verfasst: 14.10.2006 13:19
von IPB_Flüchtling
Ahoi,

zu Folgendem hätte ich eine Frage, weil ich es noch nicht in meiner .htaccess habe:

Code: Alles auswählen

# forbid files without extensions 
AcceptPathInfo off
Was es damit auf sich hat, kann man hier nachlesen:

http://httpd.apache.org/docs/2.2/de/mod/core.html

Da ich die Zeile bislang aber nicht im Einsatz habe, wüsste ich gern, ob auf einer "normalen" Website durch AcceptPathInfo off irgendwelche Nachteile zu befürchten wären (und wenn ja: welche).

LG, IPB_Flüchtling

Verfasst: 14.10.2006 13:54
von mgutt
Ich wüsste keine. Mir kam die Idee dazu, weil ich nach einem Umzug die möglichkeit hatte meine forum.php über forum/ aufzurufen und das spiderte jede Suchmaschine. Ob das wirklich ein Sicherheitsding ist vermag ich nicht zu sagen. Aber den Sinn durch Slashes Variablen zu übertragen sehe ich nicht, also weg damit ;)
(Es hilft nur Foren, die kein mod_rewrite haben trotzdem eine Art SEO-Urls haben zu können)

Hier mein Vorschlag für eine .htaccess im Verzeichnis "includes/" und "db/" (sowie andere Verzeichnisse von Mods):

Code: Alles auswählen

<FilesMatch "\.php$" >
deny from all
</FilesMatch>
Und diese .htaccess für "templates/{TEMPLATE}/admin/" (in allen Templates einfügen):

Code: Alles auswählen

<Limit GET POST PUT>
Order Allow,Deny
Deny from All
</Limit>
Das schützt davor, dass ein Hacker herausfindet, welche Mods man im Adminbereich installiert hat und evtl. Attacken entsprechend der Sicherheitslücken planen kann.

Gruß

Verfasst: 14.10.2006 15:26
von BananaJoe
Wie kriege ich die ganzen kritischen Sachen wie register_globals=off in meine htaccess? Hab versucht die von mgutt 1:1 zu übernehmen (natürlich domainnamen getauscht) aber es klappt nicht. Ich nehme mal an weil ich nur shared Webspace habe und keinen eigenen Server?

Verfasst: 14.10.2006 17:14
von larsneo
ob und was du via .htaccess beeinflussen kannst, hängt in erster linie von der serverkonfiguration hier - du solltest also deinen provider fragen, wie man den webspace möglichst sicher bekommt.
nur wenn genügend kunden entsprechenden fokus auf das thema "sicherheit" richten, wird sich hoffentlich irgendwann auch einmal eine bessere grundkonfiguration beim shared hosting durchsetzen...

Verfasst: 15.10.2006 12:58
von mgutt
die errordocument zeilen haben natürlich nichts mit sicherheit zu tun, also so wäre mein aktueller vorschlag:

Code: Alles auswählen

<Files config.php> 
Deny from all 
</Files>

DirectoryIndex index.htm index.php index.html

# Note: If you receive an Server Error Message "500" contact
# your local provider to let him set this configs

# Note: "safe_mode" can only been set in php.ini OR httpd.conf
# "safe_mode = off" is recommend, but only if your server
# has set more security configs. Otherwise "on" is recommend

# allow register globals
php_flag register_globals off

# allow backslash escaping for Get / Post / Cookie
php_flag magic_quotes_gpc on

# forbid files without extensions
# it can only been set if AllowOverride is set
AcceptPathInfo off

RewriteEngine on

# security settings
RewriteCond %{QUERY_STRING} ^(.*)wget\%20 [OR]
RewriteCond %{QUERY_STRING} ^(.*)fetch\%20 [OR]
RewriteCond %{QUERY_STRING} ^(.*)echr(.*) [OR]
RewriteCond %{QUERY_STRING} ^(.*)rush=\%65\%63\%68 [OR]
RewriteCond %{QUERY_STRING} ^(.*)rush=echo [OR]
RewriteCond %{QUERY_STRING} ^(.*)esystem(.*) [OR]
RewriteCond %{QUERY_STRING} ^(.*)passthru(.*) [OR]
RewriteCond %{QUERY_STRING} ^(.*)\.printf\( [OR]
RewriteCond %{QUERY_STRING} ^(.*)cmd [OR]
RewriteCond %{QUERY_STRING} ^(.*)\%27(.*) [OR]
RewriteCond %{QUERY_STRING} ^(.*)"(.*) [OR]
RewriteCond %{QUERY_STRING} ^(.*)\%22(.*) [OR]
RewriteCond %{QUERY_STRING} ^(.*)`(.*) [OR]
RewriteCond %{QUERY_STRING} ^(.*)\%60(.*) [OR]
RewriteCond %{QUERY_STRING} ^(.*)\%25(.*) [OR]
RewriteCond %{QUERY_STRING} ^(.*)=http://(.*) [OR]
RewriteCond %{QUERY_STRING} ^(.*)=http\%3A\%2F\%2F(.*) [OR]
RewriteCond %{QUERY_STRING} ^(.*)=ftp://(.*) [OR]
RewriteCond %{QUERY_STRING} ^(.*)=ftp\%3A\%2F\%2F(.*) [OR]
RewriteCond %{QUERY_STRING} ^(.*)=https://(.*) [OR]
RewriteCond %{QUERY_STRING} ^(.*)=https\%3A\%2F\%2F(.*) [OR]
RewriteCond %{QUERY_STRING} ^(.*)alert\(document(.*) [OR]
RewriteCond %{QUERY_STRING} ^(.*)union(.*) [OR]
RewriteCond %{QUERY_STRING} ^(.*)UNION(.*) [OR]
RewriteCond %{QUERY_STRING} ^(.*)SQL_INJECTION(.*) [OR]
RewriteCond %{QUERY_STRING} ^(.*)phpbb_root_path=(.*) [OR]
RewriteCond %{QUERY_STRING} ^(.*)configdir(.*) [NC,OR]
RewriteCond %{QUERY_STRING} ^(.*)curl(.*) [OR]
RewriteCond %{QUERY_STRING} ^(.*)lynx(.*) [OR]
RewriteCond %{QUERY_STRING} ^(.*)w3\%20(.*) [OR]
RewriteCond %{HTTP_COOKIE}% s:(.*):\%22test1\%22\%3b [OR]
RewriteCond %{QUERY_STRING} .*'.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^lwp.* [OR,NC]
RewriteCond %{HTTP_USER_AGENT} ^Python* [NC]
RewriteRule ^.*$ http://127.0.0.1/ [R,L]

Verfasst: 12.11.2006 17:43
von senyafin
Hallo zusammen, hallo mgutt.

Ich würde die Einstellungen von der Datei die du da grad gepostet hast übernehmen. Kannst Du mir bitte sagen wo genau diese zu platzieren ist?

Danke
Pascal

Verfasst: 13.11.2006 02:29
von mgutt

Verfasst: 13.11.2006 08:50
von senyafin
Wohin mit der Datei?

Die .htacces Datei kann im Rootverzeichnis für die Webseiten, htdocs, abgelegt werden, oder wenn nur ein Unterverzeichnis geschützt werden soll, in dem zu schützenden Verzeichnis.
Danke,
dann sollte es mit dem root passen.