Vra

Mense, ons weet almal dat IP swartlys nie werk nie - spammers kan in kom deur 'n gevolmagtigde, plus, wettige gebruikers kan kry geraak ... Dit gesê, swartlys lyk vir my na 'n doeltreffende meganisme om 'n aanhoudende stop aanvaller, gegee dat die werklike lys van IP's dinamies word bepaal op grond van terugvoer en gedrag van die gebruiker se aansoek.

Byvoorbeeld: - iemand wat probeer om brute krag jou inskrywing skerm - 'n swak geskryf bot kwessies baie vreemd HTTP-versoek na jou werf - 'n script-Kiddie gebruik van 'n skandeerder te kyk vir kwesbaarhede in jou app

Ek wonder of die volgende meganisme sou werk, en indien wel, weet jy of daar enige gereedskap wat dit doen:

  • In 'n web-program, ontwikkelaar het 'n haak aan 'n "oortreding" aan te meld. 'N misdryf kan klein wees (ongeldig wagwoord) en dit sal dekades van sulke oortredings te kry swartlys neem; of dit kan groot wees, en 'n paar van sulke oortredings in 'n tydperk van 24 uur skop jy uit.
  • Een of ander vorm van 'n web-bediener-vlak blok skop in op voor elke bladsy laai, en bepaal of die gebruiker is afkomstig van 'n "slegte" IP.
  • Daar is 'n "vergifnis" meganisme ingebou: oortredings nie meer tel teen 'n IP na 'n ruk
  • .

Dankie!

Ekstra wel: dit ontsagwekkende wil wees as die oplossing gewerk in PHP, maar ek wil graag jou gedagtes oor die benadering in die algemeen hoor, vir enige taal / platform

Was dit nuttig?

Oplossing

is jy op 'n * nix masjien? hierdie soort van ding is seker beter links na die bedryfstelsel vlak, met behulp van iets soos iptables

wysig:

in reaksie op die kommentaar, ja (soort van). Maar die idee is dat iptables onafhanklik kan werk. jy kan 'n sekere drumpel stel om smoor (byvoorbeeld, blok versoeke op poort 80 TCP dat x versoeke / minuut oorskry), en dit is al wat deursigtig hanteer (dit wil sê, jou aansoek regtig nie nodig om iets daaraan te leer ken, te hê dinamiese sluit plaasvind).

Ek stel voor die iptables metode as jy het volle beheer van die boks, en sou verkies om jou te laat jou firewall handvatsel wurg (voordele is, jy hoef nie hierdie logika te bou in jou web app, en dit kan hulpbronne te bespaar as versoeke is laat val voordat hulle jou webbediener getref)

anders, as jy verwag blokkeer sal nie 'n groot komponent wees, (of jou inligting is draagbaar en kan nie waarborg toegang tot iptables), dan sou dit meer sin om daardie logika te bou in jou app maak.

Ander wenke

Neem 'n blik op fail2ban . 'N luislang raamwerk wat jou toelaat om IP tafels blokke in te samel van stert log lêers vir patrone van dwalende gedrag.

Ek dink dit moet 'n kombinasie van gebruiker-naam plus IP blok wees. Nie net IP.

jy is op soek na persoonlike uitsluiting kode. Daar is aansoeke in die open source wêreld wat verskeie geure van so 'n kode bevat. Miskien moet jy kyk na 'n paar van diegene, hoewel jou behoeftes is redelik triviaal, so merk 'n IP / gebruikersnaam combo, en aan te wend wat vir die sluit van 'n IP-vir x hoeveelheid tyd. (Let wel ek sê blok die IP, nie die gebruiker. Die gebruiker kan probeer om aanlyn te kry via 'n geldige IP / gebruikersnaam / pw combo.)

Trouens, kon jy selfs hou die spore van logins, en toe in die aanteken van 'n onbekende IP met 'n 3 stakings slegte gebruikersnaam / pw combo, sluit wat IP uit vir hoe lank jy wil vir daardie gebruikersnaam. (Moet daarop dat 'n baie ISPs deel IPs, dus ....)

Jy kan ook 'n vertraging in verifikasie plaas, sodat 'n IP nie kan probeer 'n inskrywing meer as een keer elke 'y' sekondes of so.

Ek het 'n stelsel vir 'n kliënt wat die spoor van treffers teen die webbediener en dinamiese verbied IP adresse bewaar teen die bedryfstelsel / firewall vlak vir veranderlike tydperke vir sekere oortredings ontwikkel, so, ja, dit is beslis moontlik. As Owen gesê, firewall reëls is 'n baie beter plek om hierdie soort ding doen as in die webbediener. (Ongelukkig is die kliënt verkies om 'n stywe kopiereg op hierdie kode te hou, so ek is nie vry om dit te deel.)

Ek werk in die algemeen in Perl eerder as PHP, maar, so lank as wat jy 'n opdrag-lyn koppelvlak om jou firewall reëls enjin (soos, sê, / sbin / iptables), moet jy in staat wees om dit te doen redelik maklik uit enige taal wat die vermoë om te bevele uit te voer het.

dwaal hierdie soort stelsel is maklik en 'n gemeenskaplike, ek kan jou myne gee maklik genoeg

sy eenvoudig en kortliks hier verduidelik http://www.alandoherty.net/info/webservers/

die skrifte as geskrewe arn't afgelaai {as geen commentry tans bygevoeg} maar drop my 'n e-pos, vanaf die terrein bo, en ek sal die kode gooi by jou en met graagte help met ontfouting / taloring dit aan jou bediener

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top