2009-07-20 4 views
1

Ich versuche alle non-localhost-Versuche zu blockieren, um auf einen Webrick-Prozess zuzugreifen. Dies ist mein aktueller CodeNicht-localhost ablehnen Versuche, auf Webrick zuzugreifen

def do_GET(req, res) 
    host_name = "localhost:3344".split(":")[0] 
    if host_name != "localhost" && host_name != "127.0.0.1" 
     puts "Security alert, accessing through #{host_name}" 
     return 
    else 
     puts "we're fine, #{host_name}" 
    end 
# etc. 

Ist das leicht zu brechen? Mein Gedanke ist, dass der Hostname schwer zu spoofen für den Webserver selbst ist.

Antwort

2

Vielleicht binden nur den Server an die Adresse 127.0.0.1 localhost ip und dann müssen Sie nicht über nicht-lokale Host-Verbindungen sorgen:

s = WEBrick::HTTPServer.new(:Port => 3344, :BindAddress => "127.0.0.1") 
s.start 

(der obige Code ist aus der Spitze von meinem Kopf, aber im sicher, dass Sie die Idee bekommen)

+0

Ehrfürchtig. Ich werde das anhand Ihres Beispiels herausfinden. Vielen Dank! –

+0

Vergessen zu erwähnen: das funktioniert perfekt, und in der Tat ist die Linie wie du sagst. –

+0

cool, froh, dass es für dich gearbeitet hat :) – QAZ

Verwandte Themen