Puncte:1

restricționați accesul la o anumită adresă URL cu .htaccess

drapel vn

Bună, rulez serverul cu xenforo. Aș dori să știu cum pot restricționa adresa URL de la .htaccess.

Url este: https://mywebiste.com/index.php?members/find&q=oi%5Bp%5C&_xfRequestUri=%2Findex.php%3Fmembers%2F&_xfWithData=1&_xfToken=1648216864%2C89d40e7bf89d40e7bf89d40e7bf89d40e7bf89d40e7bf89d40e7bf89d40e7bf89d40e7bf89d40e7bf89d40e7bf89d40f

există injecție sql, așa că se gândește că doar blocarea l-ar rezolva.

am incercat sa fac asa ceva:

RewriteEngine Pornit
RewriteRule ^index.php?members/find&q=oi%5Bp%5C&_xfRequestUri=%2Findex.php%3Fmembers%2F&_xfWithData=1&_xfTo
ken=1648216864%2C89d40e7bf50a91b8a62f9fe448c5d1f3&_xfResponseType=json - [F]

și cu $ la sfârșit:

RewriteEngine Pornit
RewriteRule ^index.php?members/find&q=oi%5Bp%5C&_xfRequestUri=%2Findex.php%3Fmembers%2F&_xfWithData=1&_xfTo
ken=1648216864%2C89d40e7bf50a91b8a62f9fe448c5d1f3&_xfResponseType=json$ - [F]

Ce fac greșit?

Puncte:0
drapel kz

The RewriteRule directivă se potrivește numai cu calea URL. Pentru a potrivi șirul de interogare, veți avea nevoie de un suplimentar RescrieCond (condiție) directivă care se potrivește cu ȘIR DE INTEROGARE variabila server.

De exemplu, pentru a bloca respectiva adresă URL:

RewriteCond %{QUERY_STRING} =members/find&q=oi%5Bp%5C&_xfRequestUri=%2Findex.php%3Fmembers%2F&_xfWithData=1&_xfToken=1648216864%2C89d40e40e7bf80f8bf40f8bf80f90f8bf40bf0f7bf4fbf
RewriteRule ^index\.php$ - [F]

The = prefix pe CondPattern (al doilea argument la RescrieCond directivă) o face o comparație de șiruri lexicografice (potrivire exactă), nu o expresie regex, deci nu este nevoie să scăpați de meta caracterele speciale regex.

Cu toate acestea, această adresă URL este foarte specifică, nu ar fi de preferat să blocați adresele URL care (nu) se potrivesc cu un anumit model? Deși, dacă validați deja suficient valorile parametrilor URL în scriptul dvs. de pe partea serverului, blocarea unor adrese URL specifice nu ar trebui să fie necesară.

mikef0x avatar
drapel vn
Mulțumesc pentru răspuns, cum pot bloca adresele URL care nu calculează un anumit model?
drapel kz
@mikef0x Folosiți un regex. Depinde cu ce „un anumit model” faci/nu vrei să se potrivească.
Puncte:0
drapel in

Soluția pe care încercați să o implementați va bloca doar adresa URL pe care ați introdus-o.Modificarea acestei adrese URL în orice fel, de ex. Schimbarea a doi dintre parametrii GET sau adăugarea de parametri GET suplimentari (chiar irelevante) sau adăugarea de parametri hash-tag ar face cererea diferită de Apache și ar depăși protecția dumneavoastră.

În schimb, modificați-vă index.php pentru a gestiona corect cererea și pentru a lucra în siguranță cu intrarea utilizatorului (cum ar fi solicitările GET), oferind HTTP403 Neautorizat în cazul în care apare ceva suspect.

mikef0x avatar
drapel vn
mulțumesc pentru răspuns, dar folosesc xenforo și nu am experiență cu php, așa că îmi este greu să o fac.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.