PHP

2009-05-13 3 views
22

के माध्यम से प्रॉक्सी सर्वर के साथ क्लाइंट का पता लगाएं मैं अपनी वेबसाइट देखने के किसी भी प्रकार के प्रॉक्सी सर्वर का उपयोग कर क्लाइंट का पता लगाने के लिए एक तरीका ढूंढ रहा हूं या क्लाइंट का पता लगाने का एक तरीका ढूंढ रहा हूं। मैं PHP/अपाचे का उपयोग कर रहा हूं ... ऐसा करने का सबसे अच्छा तरीका क्या है? किसी भी प्रॉक्सी सर्वर को विशेष रूप से एक या दूसरे का पता लगाने की आवश्यकता नहीं होगी।PHP

संपादित

मैं गुमनाम प्रॉक्सी ... के रूप में सामान्य लोगों को आसानी से HTTP_X_FORWARDED_FOR की तलाश द्वारा पता लगाया जाता है में और अधिक दिलचस्पी है।

एक और संपादित करें

इस प्रयास करें:

1) http://kproxy.com के पास जाओ (या किसी अन्य मुक्त गुमनाम प्रॉक्सी साइट)

2) यात्रा: http://www.worldofwarcraft.com

3) वे कर रहे हैं किसी भी तरह से अवरुद्ध करने में सक्षम, क्योंकि पेज स्टाइलशीट लोड करने में त्रुटि: एक एक्सएसएलटी स्टाइलशीट लोड करने में एक नेटवर्क त्रुटि हुई: http://kproxy.com/new-hp/layout/layout.xsl "

मैं प्रॉक्सी को रोकने के लिए कुछ ऐसा करना चाहता हूं।

+0

आपके पास कौन सा इरादा है? क्या यह कोई कैश-अक्षम या बाकी है? – guerda

+0

worldofwarcraft.com मेरे लिए kproxy.com के माध्यम से ठीक लोड करता है, यह केवल स्टाइलशीट्स गायब है जो शायद कुछ प्रॉक्सी अवरोधक के बजाय HTML में संदर्भित किए जाने के कारण है। – cOle2

+0

हम अज्ञात साइटों को अवरुद्ध करना चाहते हैं ताकि उपयोगकर्ता हमारी वेबसाइट देख सकें। किसी भी तरह, ऊपर वर्णित अनुसार, बर्फ़ीला तूफ़ान स्टाइल शीट चाल का उपयोग करके ऐसा करने में सक्षम है। – MichaelICE

उत्तर

15

आप तब तक इसका पता नहीं लगा सकते जब तक कि वे विशेष शीर्षकों पर न जाएं जो एक्स-फॉरवर्ड-फॉर या कुछ की तरह इसका जिक्र करते हैं।

जहाँ तक मुझे पता है कि आपको ब्लैकलिस्ट का उपयोग करना है। पुटी पोर्टफॉरवर्डिंग, वीपीएन या अन्य परिष्कृत तरीकों का उपयोग करने वाले उपयोगकर्ता अवांछनीय हैं क्योंकि वे सामान्य उपयोगकर्ताओं की तरह व्यवहार करते हैं।

+0

हां, क्या कोई चाल है जो किया जा सकता है? कुछ कैश-सक्षम नहीं है, या आगे सक्षम है? – MichaelICE

+0

ऐसी कोई चाल नहीं है, आप सर्वरसाइड डेवलपर के रूप में नहीं देख सकते हैं कि मैं एक वीपीएन (हाँ, यह प्रॉक्सी है) से कनेक्ट है या मेरे असली इंटरनेट कनेक्शन के माध्यम से। जिन चालों का आप उल्लेख करते हैं, वे केवल कुछ वेब आधारित अज्ञात प्रॉक्सी को अवरुद्ध करते हैं, लेकिन पुटी पोर्टफोर्डिंग इत्यादि के साथ वीपीएस का उपयोग करने वाले अच्छे लोग नहीं। – TomHastjarjanto

1

क्लाइंट जो सर्वर से गुजरता है वह सब कुछ स्वयं कॉन्फ़िगर किया जा सकता है। आईपी ​​पते को छोड़कर आप कुछ भी भरोसा नहीं कर सकते हैं। तो यदि आप प्रॉक्सी या सामान्य क्लाइंट हैं, तो आप हेडर डेटा की जांच नहीं कर सकते हैं।
वैसे: यह एक प्रॉक्सी का इरादा नहीं है जो प्रॉक्सी नहीं दिख रहा है :)

निश्चित रूप से, आप अनुरोधकर्ता का आईपी पता ले सकते हैं और एक http अनुरोध भेज सकते हैं जिसे आप प्रॉक्सी भेज देंगे। यदि यह प्रतिक्रिया करता है, तो यह प्रॉक्सी हो सकता है अन्यथा, यह एक सामान्य ग्राहक है। यह विधि बहुत महंगी और भरोसेमंद नहीं होगी। यदि आपके सर्वर से अनुरोध किया गया प्रॉक्सी फ़ायरवॉल के पीछे था, तो आपको कोई जवाब नहीं मिलेगा और लगता है कि यह एक सामान्य ग्राहक है।

+0

"एक और संपादन" के तहत संपादित किए गए उदाहरण पर एक त्वरित नज़र डालें। कुछ कैसे बर्फ़ीला तूफ़ान कुछ चाल करने में सक्षम था प्रॉक्सी सर्वर भी मूर्ख। – MichaelICE

1

मुझे लगता है कि यहां क्या हो रहा है कुछ क्लाइंट-साइड जावास्क्रिप्ट कुछ लोड करने का प्रयास कर रहा है, और यह "देख सकता है" कि पृष्ठ को फ्रेम के अंदर देखा जा रहा है। यह अन्वेषण करने के लिए एक और अधिक उपयोगी एवेन्यू हो सकता है- जैसा कि अन्य उत्तरों ने इंगित किया है, प्रॉक्सी जानबूझकर अकेले सर्वर से निर्धारित करना मुश्किल बनाती है।

7

Metasploit क्लाइंट के सिस्टम को प्रत्यक्ष कनेक्शन (फ्लैश, जावा, क्विकटाइम, एमएस ऑफिस, कस्टम DNS सर्वर में भेद्यता/गलतफहमी) बनाने के लिए मजबूर करने के लिए कई अलग-अलग तकनीकों का उपयोग करता है।

वैकल्पिक रूप से, यदि आप मेटाप्लोइट लॉन्च करने के लिए क्लाइंट का ब्राउज़र नहीं प्राप्त कर सकते हैं, तो आप खुले प्रॉक्सी (पोर्ट स्कैनिंग) और known Tor exit nodes को देखने का प्रयास कर सकते हैं।

लेकिन कृपया यह न मानें कि प्रॉक्सी बुराई है और अवरुद्ध होने की आवश्यकता है - बहुत सारे वैध प्रॉक्सी हैं और कुछ उपयोगकर्ताओं को उनका उपयोग करना है।

यदि आपको स्पैम या अन्य अपमानजनक यातायात में परेशानी है तो केवल प्रॉक्सी को अवरुद्ध करने से ज्यादा मदद नहीं मिलेगी। आपको विशिष्ट समाधानों की तलाश करनी चाहिए जो अज्ञात = दोषी मानने के बजाय समस्या के मूल (स्पैम फ़िल्टर, आईडीएस) को संबोधित करते हैं।

+5

+1 अनाम नाम! = दोषी – walrii

-3

मैं निम्नलिखित का उपयोग कर रहा हूं, लेकिन मुझे यकीन नहीं है कि यह हर बार काम कर रहा है या नहीं। यह सिर्फ एक विचार है :)

<?php 
$host = gethostbyaddr($_SERVER['REMOTE_ADDR']); 
if ($host != $_SERVER['REMOTE_ADDR']) die('Proxy detected.'); 
?> 
+5

यह कई उपयोगकर्ताओं के लिए असफल हो जाएगा, क्योंकि Gethostaddr उपयोगकर्ता नाम और उपयोगकर्ता नाम जैसे अधिकांश समय देता है: 5ED042DD.dynamic। .com – Codebeat

21

PHP में निम्नलिखित 2 समाधानों का उपयोग करें। // methode 1 = त्वरित लेकिन अनाम प्रॉक्सी

$proxy_headers = array(
     'HTTP_VIA', 
     'HTTP_X_FORWARDED_FOR', 
     'HTTP_FORWARDED_FOR', 
     'HTTP_X_FORWARDED', 
     'HTTP_FORWARDED', 
     'HTTP_CLIENT_IP', 
     'HTTP_FORWARDED_FOR_IP', 
     'VIA', 
     'X_FORWARDED_FOR', 
     'FORWARDED_FOR', 
     'X_FORWARDED', 
     'FORWARDED', 
     'CLIENT_IP', 
     'FORWARDED_FOR_IP', 
     'HTTP_PROXY_CONNECTION' 
    ); 
    foreach($proxy_headers as $x){ 
     if (isset($_SERVER[$x])) die("You are using a proxy!"); 
    } 

// Methode 2 = साथ काम नहीं करता इस्तेमाल किया सामान्य प्रॉक्सी बंदरगाहों पर वापस मूल आईपी के portscan।

$ports = array(8080,80,81,1080,6588,8000,3128,553,554,4480); 
    foreach($ports as $port) { 
     if (@fsockopen($_SERVER['REMOTE_ADDR'], $port, $errno, $errstr, 30)) { 
       die("You are using a proxy!"); 
     } 
    } 
+7

मैं दूसरी विधि के उपयोग को हतोत्साहित करता हूं - यह अक्सर झूठी सकारात्मक देता है। इस विधि का उपयोग करने वाली तृतीय पक्ष प्रॉक्सी पहचान स्क्रिप्ट का उपयोग करते समय हमारे पास इस साइट पर समस्याएं थीं। –

+3

दूसरी विधि, न केवल इसमें बहुत समय लगेगा और अत्यधिक तस्करी वाली वेबसाइटों पर लागू नहीं किया जा सकता है, लेकिन यह कुछ आगंतुकों को एंटी वायरस अलर्ट भी लाएगा! –

+0

HTTP_X_FORWARDED_FOR मेरे सामान्य इंटरनेट प्रत्यक्ष कनेक्शन का उपयोग करके एक झूठी पोस्टिव लौटाता है। – Sumedh

1

पुराना विषय, लेकिन मैंने कुछ पता लगाया होगा।

यह मेरी साइट पर लाइव है और मुझे लगता है कि यह ज्यादातर मामलों के लिए काम कर सकता है।

मेरी समस्या यह थी कि प्रतिबंधित उपयोगकर्ता मेरी साइट पर वापस आ रहे थे और आपको मिलने वाले कई प्रॉक्सी का उपयोग करके एक नए ईमेल पते के साथ फिर से पंजीकरण कर रहे थे। क्योंकि यह उसके स्रोत कोड में एक पता करने के लिए 'नई-hp/लेआउट/layout.xsl "की ओर इशारा करते है

<form id="login_form" method="post" action="/#fake_login_url"> 
    stuff you need for the form 
</form> 
<script> 
    $('#login_form').attr('action','real_login_form'); 
</script> 
+0

मुझे लगता है कि यह केवल प्रॉक्सी का पता लगाता है जो जेएस को नेटवर्क यातायात से पीड़ित करता है? – sousdev

+1

अधिकांश प्रॉक्सी पोस्ट के लिए यूआरएल को प्रतिस्थापित करते हैं, जेएस निष्पादित करने से इसे सामान्य पर वापस रखा जाएगा। सुनिश्चित करें कि 'real_login_form' कुछ हद तक सादा पाठ में नहीं है, आईई: 'var url =' ht '+' tp: '+' // '+' साइट '+' com '+'/url'' – Fabrizio

1

इस वेबसाइट के इस त्रुटि दिखाता है: क्या मैंने किया है पंजीकरण/लॉगिन फार्म पर एक सरल jQuery कॉल है । एक प्रॉक्सी आपके आईपी को छिपाना चाहता है, इसलिए यह अपने सर्वर को इंगित करने के लिए http://kproxy.com/new-hp/layout/layout.xsl पर बदल रहा है, लेकिन फ़ाइल वास्तव में मौजूद नहीं है, इसलिए फ्लैश प्लगइन इसे नहीं ढूंढ सकता है।

2

विभिन्न भुगतान/मुक्त समाधान हैं। उनमें से अधिकतर ग्राहक आईपी को यह निर्धारित करने के लिए कनेक्ट करने की कोशिश कर रहे हैं कि वे प्रॉक्सी पर हैं या नहीं।

भुगतान:
Maxmind - वे धोखाधड़ी का पता लगाने पर ध्यान केंद्रित करते हैं और प्रॉक्सी पहचान के लिए उप-श्रेणी रखते हैं। ध्यान दें कि इसे अब "विरासत" सेवा के रूप में माना जाता है।

नि: शुल्क:
W I T C H - एमएसएस मूल्यों कि विशिष्ट रूप से पहचान कर रहे हैं को देखकर OpenVPN पता लगाने में सक्षम। कोड जिथूब पर उपलब्ध है।

GetIpIntel - मशीन सीखने का उपयोग कर प्रॉक्सी/वीपीएन पहचान, एपीआई के माध्यम से प्रश्न।

on security stack exchange सूचीबद्ध कुछ और निःशुल्क विकल्प हैं।

+0

आप Google में "आईपी 2 प्रॉक्सी" की खोज कर सकते हैं। यह दैनिक अद्यतन प्रॉक्सी आईपी पते के साथ भी सशुल्क समाधान है। –

+0

मैंने अभी IP2Proxy के साथ कुछ परीक्षण किया है, यह बहुत सटीक नहीं है। मेरे अनुभव से, भुगतान किए गए समाधानों के लिए अवरुद्ध/अधिकतम कार्य अच्छी तरह से काम करते हैं, और GetIPIntel सबसे अच्छा मुफ्त समाधान है। –

+0

इस सूची में जोड़ने के लायक एक और प्रॉक्सी और वीपीएन पहचान सेवा IPQualityScore (https://www.ipqualityscore.com/) है। उनके पास उदार मुक्त और भुगतान योजनाएं हैं और प्रॉक्सी पहचान आईपी को झूठी-सकारात्मक के रूप में फ़्लैग किए बिना बहुत सटीक है। – Stas

0

मुझे लगता है कि 8 साल के पुराने धागे का जवाब बेकार है, लेकिन मैं भविष्य के संदर्भ के लिए किसी भी तरह का जवाब दूंगा।
मुझे प्रॉक्सी के बारे में पता नहीं है, लेकिन अधिकांश वीपीएन (यदि आप उनके पास जाते हैं) कुछ प्रकार के त्रुटि पृष्ठ लाएंगे। अगर आप कुछ की तरह ... किया

$cont = file_get_contents($_SERVER["REMOTE_ADDR"]); //the users ip 
$errormsg = "nginx"; 
if(strpos($cont, $errormsg)){ 
    die("No VPN's or Proxies Allowed"); 
} 

यह बहुत ही बुनियादी है, तो आप त्रुटि संदेशों में से एक सरणी मिलता है और इसे उस तरह से कर सकता है।
यदि उपयोगकर्ता ने अपने 80 पोर्ट को पोर्टफॉरवर्ड किया है, तो यह काम नहीं करेगा, लेकिन मैं नहीं देखता कि आम व्यक्ति ऐसा क्यों करेगा।

संबंधित मुद्दे

 संबंधित मुद्दे