2009-07-20 4 views
1

J'essaie de bloquer toutes les tentatives d'accès non-localhost pour accéder à un processus Webrick. Ceci est mon code actuelRejeter Non-localhost Tentatives d'accès à Webrick

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. 

Est-ce facile à briser? Ma pensée est que le nom d'hôte est difficile à usurper au serveur Web lui-même.

Répondre

2

lier Peut-être que le serveur à l'adresse 127.0.0.1 ip localhost et puis vous avez pas à vous soucier des connexions non localhost:

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

(le code ci-dessus est du haut de ma tête, mais im sûr que vous obtenez l'idée)

+0

Impressionnant. Je vais comprendre cela à partir de votre exemple. Je vous remercie! –

+0

Oublié de mentionner: cela fonctionne parfaitement, et en fait la ligne est comme vous dites. –

+0

cool, heureux que cela a fonctionné pour vous :) – QAZ

Questions connexes