Назад | Перейти на главную страницу

Запретить URL-адреса с родительским элементом .. в пути в apache

Мне было интересно, есть ли простой способ запретить apache httpd (403) любые URL-адреса, содержащие родительский .. в пути.

До сих пор я пробовал (для простоты игнорируя положительные моменты вспышки)

<LocationMatch "\.\.">
Order allow,deny
Deny from all
</LocationMatch>

Но это не сработало. В каталоге есть Allow from all в этом. На правильном ли я пути или есть более простой способ сделать это (как это было в Fasttrack в 90-х).

Я бы сделал это, используя ModSecurity:

SecRule REQUEST_URI "../" "log,deny,msg:'Directory Traversal Attack Detected'"

Тестирование с некоторыми запросами:

http://domain.com/../../../../etc/passwd

и просмотрите журнал аудита, вы увидите что-то вроде этого:

[modsecurity] [client x.x.x.x] [domain domain.com] [302] [/20120816/20120816-1529/20120816-152911-1np2Nn8AAAEAA Aq6EU0AAAAG] [file "/etc/httpd/modsecurity.d/modsecurity_crs_10_config.conf"] [line "305"] [msg "Directory Traversal Attack Detected"] Access denied with code 403 (phase 2). Pattern match "../" at REQUEST_URI.