SearchEngines.bg

Това е примерно съобщение за гост. Регистрирайте безплатен акаунт днес, за да станете потребител на SearchEngines.bg! След като влезете, ще можете да участвате в този сайт, като добавите свои собствени теми и публикации, както и да се свържете с други членове чрез вашата лична входяща кутия! Благодарим ви!

Помощ за htaccess код, блокиращ по низове в URL-а

scoobydoo

Know you can!
Здравейте.

Някой би ли ми помогнал, като сътвори един htaccess код? Ще съм му много благодарен :).

Ако някой се навие, моля кодът да прави следното. Когато се посети URL адрес, който отговаря на следните условия, да се връща 403 грешка:
- URL адресът завършва на един от тези низове:
/edit
/edit/
/signup
/signup/
/login.php
/member/
/member

- URL адресът съдържа някъде, където и да е, един от тези низове:
timthumb.php
thumb.php
thumbs.php
logging.php
reg.php
modules.php
postguest.php
member.php
join.php
join_form.php
register.php
signup.php
=register
=quit
YaBB.
sign_up.html
.one
.asp


Слагайки такъв код в .htaccess файлът на Wordpress сайт ще блокира множество спам и експлойт ботове, които правят ненужни заявки предимно към несъществуващи адреси (ако някой реши също да го ползва, да има предвид, че нормалните потребители няма да могат да се регистрират, също ако темата ползва един от тези файлове timthumb.php, thumb.php, thumbs.php - няма да работи).

Аз си направих скрипт който ги блокира по ip ако са много агресивните такива ботове, но всеки ден се появяват нови и нови ip адреси и никога нямат край. За това искам да си добавя такъв код.

Поздрави.
 
Последно редактирано:
Re: Помощ за htaccess код, блокиращ по низове в URL-а

Код:
RewriteCond %{QUERY_STRING} /edit
RewriteCond %{QUERY_STRING} /signup
RewriteCond %{QUERY_STRING} /login.php
RewriteCond %{QUERY_STRING} /member
RewriteCond %{QUERY_STRING} timthumb.php
RewriteCond %{QUERY_STRING} thumb.php
RewriteCond %{QUERY_STRING} thumbs.php
RewriteCond %{QUERY_STRING} logging.php
RewriteCond %{QUERY_STRING} reg.php
RewriteCond %{QUERY_STRING} modules.php
RewriteCond %{QUERY_STRING} postguest.php
RewriteCond %{QUERY_STRING} member.php
RewriteCond %{QUERY_STRING} join.php
RewriteCond %{QUERY_STRING} join_form.php
RewriteCond %{QUERY_STRING} register.php
RewriteCond %{QUERY_STRING} signup.php
RewriteCond %{QUERY_STRING} \=register
RewriteCond %{QUERY_STRING} \=quit
RewriteCond %{QUERY_STRING} YaBB
RewriteCond %{QUERY_STRING} sign\_up\.html
RewriteCond %{QUERY_STRING} \.one
RewriteCond %{QUERY_STRING} \.asp

RewriteRule .* [F]
Скуби, нещо такова би трябвало да сработи.
 
За: Помощ за htaccess код, блокиращ по низове в URL-а

За: Помощ за htaccess код, блокиращ по низове в URL-а

Нещо такова би трябвало да работи:
PHP:
RewriteEngine On

RewriteCond %{REQUEST_URI} (/edit|/edit/|/signup|/signup/|/login\.php|/member/|/member)$  [NC]
RewriteRule . /403.php [R=403,L]

RewriteCond %{REQUEST_URI} (timthumb\.php|thumb\.php|thumbs\.php|logging\.php|reg\.php|modules\.php|postguest\.php|member\.php|join\.php|join_form\.php|register\.php|signup\.php|\=register|\=quit|YaBB\.*|sign_up\.html|\.one|\.asp) [NC]
RewriteRule . /403.php [R=403,L]
Не съм го тествал!
 
За: Помощ за htaccess код, блокиращ по низове в URL-а

За: Помощ за htaccess код, блокиращ по низове в URL-а

Благодаря за отговорите, но и двата кода не правят точно това, което ми е нужно. Имайте предвид, че изобщо не мога да си го дооправя ако само ме насочите, защото не разбирам от htaccess почти изобщо.

Та за първия код тествах няколко адреса и не ги блокира, не знам защо.

За втория код, той блокира наистина, но не е точно както ми трябва. Както казах по-горе, при втория списък с низове трябва да се блокира независимо къде се съдържат в целия URL. Например в момента кода блокира следния адрес example.com/thumb.php, обаче не блокира този: example.com/bla?x=2&c=thumb.php&h=4

Ще е супер ако някой може да го преправи (или да направи друг).

Благодаря.
 
За: Помощ за htaccess код, блокиращ по низове в URL-а

За: Помощ за htaccess код, блокиращ по низове в URL-а

Имайте предвид, че изобщо не мога да си го дооправя ако само ме насочите, защото не разбирам от htaccess почти изобщо.
....

За втория код, той блокира наистина, но не е точно както ми трябва. Както казах по-горе, при втория списък с низове трябва да се блокира независимо къде се съдържат в целия URL. Например в момента кода блокира следния адрес example.com/thumb.php, обаче не блокира този: example.com/bla?x=2&c=thumb.php&h=4
Ще е супер ако някой може да го преправи (или да направи друг).
Благодаря.
Да, регулярните изрази са гаднички и с благодаря няма да минеш :p. Ако искаш да хване и втория ти пример просто добави "*" или цялото да стане:
HTML:
RewriteCond %{REQUEST_URI} (/edit|/edit/|/signup|/signup/|/login\.php|/member/|/member)$  [NC]
RewriteRule . /403.php [R=403,L]

RewriteCond %{REQUEST_URI} (timthumb\.php|thumb\.php*|thumbs\.php|logging\.php|reg\.php|modules\.php|postguest\.php|member\.php|join\.php|join_form\.php|register\.php|signup\.php|\=register|\=quit|YaBB\.*|sign_up\.html|\.one|\.asp) [NC]
RewriteRule . /403.php [R=403,L]

Онова RewriteEngine On ако преди това ти е включено не е необходимо да го добавяш, но не те и бърка ако го повториш. Там това 403.php е страницата къстъм страницата ти за код 403. Преименувай го така както ти е някъде е .php, другаде 403.html и т.н. Сещаш се.
 
Последно редактирано:
За: Помощ за htaccess код, блокиращ по низове в URL-а

За: Помощ за htaccess код, блокиращ по низове в URL-а

Да ама не. По някаква причина не мога да редактирам горното.
Значи:
HTML:
RewriteCond %{REQUEST_URI} (/edit|/edit/|/signup|/signup/|/login\.php|/member/|/member)$  [NC]
RewriteRule . /403.php [R=403,L]

RewriteCond %{REQUEST_URI} (timthumb\.php|thumb\.php|thumbs\.php|logging\.php|reg\.php|modules\.php|postguest\.php|member\.php|join\.php|join_form\.php|register\.php|signup\.php|\=register|\=quit|YaBB\.|sign_up\.html|\.one|\.asp) [NC]
RewriteRule . /403.php [R=403,L]

RewriteCond %{QUERY_STRING} (timthumb\.php|thumb\.php|thumbs\.php|logging\.php|reg\.php|modules\.php|postguest\.php|member\.php|join\.php|join_form\.php|register\.php|signup\.php|\=register|\=quit|YaBB\.|sign_up\.html|\.one|\.asp) [NC]
RewriteRule . /403.php [R=403,L]
Така ще хване и твоя пример.
 
За: Помощ за htaccess код, блокиращ по низове в URL-а

За: Помощ за htaccess код, блокиращ по низове в URL-а

@Dimo
Този път е по-близко, но все още не е както трябва. Например от първия списък с низове, това го блокира, а самия url не завършва на /edit
example.com/edit?a=1
А от втория списък това не го блокира, а съдържа thumb.php
example.com/?a=thumb.php
Не знаех, че е толкова сложно това.
Въпреки че не е точно както трябва, може и да ми свърши работа, но трябва да тествам малко повече, което ще направя утре.
Благодаря за кода. Иначе ако не ти се занимава повече няма проблеми. Аз питам, пък всеки си преценява.
Поздрави.
 
Re: За: Помощ за htaccess код, блокиращ по низове в URL-а

Re: За: Помощ за htaccess код, блокиращ по низове в URL-а

scoobydoo каза:
Та за първия код тествах няколко адреса и не ги блокира, не знам защо.
Нормално, забравил съм да сложа [NC,OR]

Но кодът на Димо е по-прилежен и вероятно се изпълнява по-бързо от моя, но може още малко да се пооптимизира:

Код:
RewriteCond %{REQUEST_URI} (/edit|/edit/|/signup|/signup/|/login\.php|/member/|/member)$  [NC]
RewriteRule .* - [F]

RewriteCond %{REQUEST_URI} (timthumb\.php|thumb\.php|thumbs\.php|logging\.php|reg\.php|modules\.php|postguest\.php|member\.php|join\.php|join_form\.php|register\.php|signup\.php|\=register|\=quit|YaBB\.|sign_up\.html|\.one|\.asp) [NC,OR]
RewriteCond %{QUERY_STRING} (timthumb\.php|thumb\.php|thumbs\.php|logging\.php|reg\.php|modules\.php|postguest\.php|member\.php|join\.php|join_form\.php|register\.php|signup\.php|\=register|\=quit|YaBB\.|sign_up\.html|\.one|\.asp) [NC]
RewriteRule .* - [F]

Така спестяваш една директива и едно пренасочване.
 
За: Помощ за htaccess код, блокиращ по низове в URL-а

За: Помощ за htaccess код, блокиращ по низове в URL-а

То не, че е толкова сложно. Просто вариантите, които искаш да обхванеш са много. Теб те тормозят ботовете, които обикалят за уязвимости, но там вариантите са 100-ци. Гледах навремето някакви комплексни htaccess файлове за защити от ботове, но резултатът беше, че започаха да бъркат и нормалните адреси наред с търсените. Съветът ми е да ги оставиш да си обикалят :)
A иначе нещо комлексно, на което донякъде можеш да се довериш, е това
HTML:
https://secure.rivalhost.com/knowledgebase/1037/htaccess-against-MySQL-injections-and-other-hacks.html
 
За: Помощ за htaccess код, блокиращ по низове в URL-а

За: Помощ за htaccess код, блокиращ по низове в URL-а

Мерси и на двамата. В крайна сметка ще ползвам този код, леко оптимизирания вариант. Тествах го и изглежда блокира всичко, което ми трябва и не мисля, че WP има адреси, които да се блокират по погрешка (освен регистрацията и ако темата ползва някой от посочените thumb файлове, което за мен не се отнася).
Поздрави.
Код:
RewriteCond %{REQUEST_URI} (/edit|/edit/|/signup|/signup/|/login\.php|/member/|/member)$  [NC]
RewriteRule .* - [F]

RewriteCond %{REQUEST_URI} (timthumb\.php|thumb\.php|thumbs\.php|logging\.php|reg\.php|modules\.php|postguest\.php|member\.php|join\.php|join_form\.php|register\.php|signup\.php|\=register|\=quit|YaBB\.|sign_up\.html|\.one|\.asp) [NC,OR]
RewriteCond %{QUERY_STRING} (timthumb\.php|thumb\.php|thumbs\.php|logging\.php|reg\.php|modules\.php|postguest\.php|member\.php|join\.php|join_form\.php|register\.php|signup\.php|\=register|\=quit|YaBB\.|sign_up\.html|\.one|\.asp) [NC]
RewriteRule .* - [F]
 
За: Помощ за htaccess код, блокиращ по низове в URL-а

За: Помощ за htaccess код, блокиращ по низове в URL-а

Между другото, този код няма ли да прави същото?

Код:
RewriteCond %{REQUEST_URI} (/edit|/edit/|/signup|/signup/|/login\.php|/member/|/member|timthumb\.php|thumb\.php|thumbs\.php|logging\.php|reg\.php|modules\.php|postguest\.php|member\.php|join\.php|join_form\.php|register\.php|signup\.php|\=register|\=quit|YaBB\.|sign_up\.html|\.one|\.asp) [NC,OR]
RewriteCond %{QUERY_STRING} (timthumb\.php|thumb\.php|thumbs\.php|logging\.php|reg\.php|modules\.php|postguest\.php|member\.php|join\.php|join_form\.php|register\.php|signup\.php|\=register|\=quit|YaBB\.|sign_up\.html|\.one|\.asp) [NC]
RewriteRule .* - [F]

Тоест да има само един RewriteCond %{REQUEST_URI} и всички низове да са там.

ЕДИТ: Сега видях, че всъщност има един $ и че не са еднакви реално редовете, така че едва ли ще стане така.
 
Последно редактирано:
Re: За: Помощ за htaccess код, блокиращ по низове в URL-а

Re: За: Помощ за htaccess код, блокиращ по низове в URL-а

ЕДИТ: Сега видях, че всъщност има един $ и че не са еднакви реално редовете, така че едва ли ще стане така.
$ означава край на стринга
и ако имаш страница, която съдържа /editorial ще блокира и нея с твоя вариант.
 
За: Помощ за htaccess код, блокиращ по низове в URL-а

За: Помощ за htaccess код, блокиращ по низове в URL-а

Ей тази глупост като я видя и ми завират червата:

PHP:
 RewriteRule . /403.php

искате да блокриате ненужни заявки от спам/експлойт ботове, а ги насочвате към PHP скрипт, който да генерира допълнителен resource usage..... Наливате от пусто в празно. Защо просто не накарате Apache да връща 403 без да вдига php за това...

PHP:
 RewriteRule .* - [F]

и ги оставяте на произвола на съдбата. Нито ще си тъпчете iptables със записи, нито ще си правите .htaccess-а 4000 реда.
 

Горе