Zistenie skutočnej IP za proxy serverom

Programovacie jazyky, rady, poradňa...
luskacik
Novice
Novice
Príspevky: 3
Registrovaný: 14 júl 2008, 14:34

Zistenie skutočnej IP za proxy serverom

Príspevok od používateľa luskacik »

Ahojte,

bol by som rád, ak by ste mi pomohli s jedným problémom. Mám web stránku (vytvorenú s použitím PHP + MySQL), na ktorú ale chodí jeden neželaný návštevník a robí na nej tak trošku bordel. Dotyčný prichádza na moju stránku cez proxy server (konkrétne stále cez web rozhranie anonymouse.org).

Chcel by som sa spýtať, či sa nedá nejakým spôsobom zistiť skutočná IP adresa daného človeka, ktorý chodí na môj web? Anonymouse pridáva pred každý link v "a href" túto časť:

Kód: Vybrať všetko

http://anonymouse.org/cgi-bin/anon-www.cgi/
Takže jeden spôsob, ktorý ma napadol by mohol byť ten, aby som môjmu skriptu prikázal nejakým spôsobom túto časť adresy mazať a po tom, ako by páchateľ na link klikol, mohol by som na ďalšej stránke odchytiť jeho skutočnú adresu. Lenže otázka je, či je niečo také možné? Napr nejak cez javascript by to nešlo?

Ďakujem za rady.
Mek
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4661
Registrovaný: 23 mar 2005, 23:00
Bydlisko: ZA <-> TN
Kontaktovať používateľa:

Príspevok od používateľa Mek »

javascript - window.location a jeho atributy si nastuduj... a potom mozes pri navsteve si hodnoty tychto atributov odosielat na server cez ajax a mas skutocnu IP (ak to neprejde anonymizerom), alebo mozes takeho navstevnika rovno zablokovat, ked uvidis, ze v location sa nachadza adresa anonymizeru.
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

A keď zakáže javascript?
juho
Star
Star
Používateľov profilový obrázok
Príspevky: 551
Registrovaný: 11 máj 2007, 21:16

Príspevok od používateľa juho »

tak potom spravit odosielanie formulara cez javascript a nic neodosle.
alebo pomocou servera $_SERVER['REMOTE_HOST']..
luskacik
Novice
Novice
Príspevky: 3
Registrovaný: 14 júl 2008, 14:34

Príspevok od používateľa luskacik »

Mek napísal:javascript - window.location a jeho atributy si nastuduj... a potom mozes pri navsteve si hodnoty tychto atributov odosielat na server cez ajax a mas skutocnu IP (ak to neprejde anonymizerom), alebo mozes takeho navstevnika rovno zablokovat, ked uvidis, ze v location sa nachadza adresa anonymizeru.
Môžeš byť, prosím, trošičku konkrétnejší? To blokovanie cez anonymizer nie je dobré riešenie, pretože potom si útočník nájde iný spôsob, ako mi prejsť cez rozum (napríklad použitím proxy, ale nie cez web rozhranie).

chrono: ako tak skúmam anonymouse.org, tak oni neposkytujú zrejme štandardne možnosť zablokovať javascript, alebo cookies a pod. Takže JS by asi mohol byť použiteľný (ak to je teoreticky možné použiť).
juho napísal:tak potom spravit odosielanie formulara cez javascript a nic neodosle.
alebo pomocou servera $_SERVER['REMOTE_HOST']..
Ak by nefungoval ten formulár (napríklad prihlasovací), tak by bol páchateľ nútený použiť iný spôsob "tajného" prihlásenia, teda toto asi nebude riešenie mojeho problému. No ten REMOTE_HOST ma zaujíma. Mala by to byť funkcia mojho web servera (resp PHP interpretera)? Táto premenná by mala ukazovať skutočnú IP adresu človeka? Pretože ak si dám výpis phpinfo(), tak tam táto premenná nie je.

Zatial dakujem pekne za odpovede.
zupanok
Medium Star
Medium Star
Príspevky: 325
Registrovaný: 19 dec 2005, 18:43
Bydlisko: MT

Príspevok od používateľa zupanok »

čo vlastne chceš?
len zistiť skutočnú IP neželeného návštevníka?
a nechceš ho blokovať?
to mu chceš len povedať bububu?

a okrem toho, dnes má mnoho ľudí dyn. IP, takže skutočnú IPčku ani nemôžeš zistiť, iba ak rozsah IP ktorý je pridelovaný jednotlivým užívateľom
od providera (a to ti je k ničomu)

ak je neželaný tak ho zablokuj, ak použije inú cestu, blokuj ho znovu, raz ho to prestane baviť,
alebo si zabezpeč prístup na stránku (registrácia) len tebou povoleným návštevníkom (alebo niečo na spôsob pozvánky?)
luskacik
Novice
Novice
Príspevky: 3
Registrovaný: 14 júl 2008, 14:34

Príspevok od používateľa luskacik »

zupanok napísal:čo vlastne chceš?
len zistiť skutočnú IP neželeného návštevníka?
Myslím, že som to opísal dosť dostatočne vyššie. Áno, chcem zistiť jeho skutočnú IP adresu. Nechcem ho blokovať, chcem mu povedať len "bububu".
zupanok napísal:a okrem toho, dnes má mnoho ľudí dyn. IP, takže skutočnú IPčku ani nemôžeš zistiť, iba ak rozsah IP ktorý je pridelovaný jednotlivým užívateľom od providera (a to ti je k ničomu)
Chceš povedať, že ak má niekto dynamickú IP adresu, nie je táto adresa jeho "skutočná"? Omyl. Aj zistenie takejto IP adresy by mi veľmi pomohlo vypátrať páchateľa. Mám totiž veľké podozrenie, že páchateľ je jedným z mojich častých návštevníkov môjho webu. Mám databázu s IP adresami týchto návštevníkov, a teda ak by som mal IP adresu človeka, ktorý mi chodí robiť na web problémy cez proxy, vedel by som ho (možno) veľmi ľahko identifikovať (a vyviesť patričné dôsledky už ku konkrétnej osobe, ktorá je stálym členom mojej stránky - nielen k anonymnému útočníkovi).

Dík za pochopenie.
Mek
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4661
Registrovaný: 23 mar 2005, 23:00
Bydlisko: ZA <-> TN
Kontaktovať používateľa:

Príspevok od používateľa Mek »

PHP premenna $_SERVER['REMOTE_ADDR'] obsahuje IP adresu navstevnika, ALE... ked navstevnik ide cez proxy, tak tato premenna obsahuje IP adresu proxy servera.
Niektore proxy servery (vlastne vacsina) su ale take blbe, ze pri preposielani pridavaju do HTTP hlaviciek hlavicku X-Forwarded-For: a ta obsahuje skutocnu IP cloveka. Obsah tejto hlavicky je pristupny pod premennou $_SERVER['HTTP_FORWARDED_FOR'] ale kedze ucelom anonymizerov je ukryt cloveka, tak tieto urcite tuto hlavicku nepridavaju.
jurko.info
Medium Expert
Medium Expert
Príspevky: 108
Registrovaný: 22 nov 2006, 0:16
Kontaktovať používateľa:

huhuhu na anonymizér

Príspevok od používateľa jurko.info »

aj keď zistíš jeho skutočnú IPčku, tak je ti to na dve veci, provider ti určite neposkytne údaje z logov serveru o uživateľovi (boli by amatéri keby ti to poskytli)... to je možné len v súčinnosti s orgánmi činnými v trestnom konaní

skús srandičku, identifikuj ten referer a ak je z anonymizéru, tak to presmeruj na nejaké stránky, čo ho zaskočia, stránky mvsr/polície alebo si nejakú takú habaďúru vytvor :-) ak je hlupák (no hlupák je určite), tak by ho to vystrašiť trošku malo :o)
zupanok
Medium Star
Medium Star
Príspevky: 325
Registrovaný: 19 dec 2005, 18:43
Bydlisko: MT

Príspevok od používateľa zupanok »

luskacik napísal:Chceš povedať, že ak má niekto dynamickú IP adresu, nie je táto adresa jeho "skutočná"? Omyl. ...
nechcem sa hádať, ale na upresnenie: áno, môže byť (je) skutočná, ale vždy je iná, teda po každom novom pripojení, preto sa volá dynamická,
samozrejme mení sa to v rozmedzí, ktoré je pre providera k dispozícii,
podstatné je to, že v tomto prípade ti to nie je k ničomu, ak máš databázu IP, a tie sa u užívateľov nemenia, tak máš šancu že nájdeš podrazáka, otázka je len či ten tvoj záznam IP je aktualizovaný, a či zaznamenáva aj dynamické IP, predpokladám, že chápeš o čom píšem

inak máš šancu, ako už predomnou písali, ale nikdy to nebude 100%,
ale náhoda je blbec....

ako som už písal, úspech vôbec nie je zaručený, ale jedná sa aj o $_SERVER[....], tých možností v tomto prípade je viac, tu máš zopár príkladov:

Kód: Vybrať všetko

function get_x_forwarded () {
  if(isset($_SERVER["HTTP_X_FORWARDED_FOR"])) {
    return $_SERVER["HTTP_X_FORWARDED_FOR"];
  } elseif (isset($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"])) {
    return $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"];
  } elseif (getenv("HTTP_X_FORWARDED_FOR")) {
    return getenv("HTTP_X_FORWARDED_FOR");
  } else {
    return "none";
  }
}

function get_client_ip () {
  if(isset($_SERVER["HTTP_CLIENT_IP"])) {
    return $_SERVER["HTTP_CLIENT_IP"];
  } elseif (isset($HTTP_SERVER_VARS["HTTP_CLIENT_IP"])) {
    return $HTTP_SERVER_VARS["HTTP_CLIENT_IP"];
  } elseif (getenv("HTTP_CLIENT_IP")) {
    return getenv("HTTP_CLIENT_IP");
  } else {
    return "none";
  }
}

function get_remote_addr () {
  if(isset($_SERVER["REMOTE_ADDR"])) {
    return $_SERVER["REMOTE_ADDR"];
  } elseif (isset($HTTP_SERVER_VARS["REMOTE_ADDR"])) {
    return $HTTP_SERVER_VARS["REMOTE_ADDR"];
  } elseif (getenv("REMOTE_ADDR")) {
    return getenv("REMOTE_ADDR");
  } else {
    return "none";
  }
}
použi ich podľa vlastného uváženia, možno ti to pomôže
Napísať odpoveď