2013-01-16 37 views
1

我有两台服务器,让我们称他们为服务器1和服务器2.服务器2上有一个Web应用程序,可以说,显示帖子。此应用程序在http://www.2.com/showPosts上可用,每个人都可以访问此页面。此应用程序还可以远程添加帖子。要做到这一点,你必须去页面http://www.2.com/addPost并填写表格。限制访问一个网站只有一台机器

我想要做的只是将访问第二页(/ addPost)限制为只有一台机器,即服务器1,这样只有我可以进入此页面并填写此表单,其他人得到404.如何做到这一点?

编辑: 谢谢你的回答。我已经根据他们做了更多的阅读,现在可以让我的问题更加精确一些。我确实需要做的是通过服务器对客户端进行身份验证,whis与单向ssl身份验证相反,您通过客户端对服务器进行身份验证。我认为任何一种基于IP的认证都太弱,我需要某种证书。

+1

我会在不同的端口上运行它。然后你知道没有其他机器可以访问那个端口。 –

+0

@PeterLawrey除非有人碰巧运行端口扫描器或以某种方式发现地址。然后它回到原点。 – tucuxi

+0

@tucuxi我希望OP的Web服务器有某种防火墙。在这种情况下,第二个管理端口将不能从他/她不想要的任何机器访问。如果他们可以在同一台机器上运行端口扫描器,那么你是对的,但是如果可能的话,我怀疑你有真正的问题。 –

回答

0

保护您的http://www.2.com/addPost带有只在一台机器上的浏览器中存在的证书。

+0

我想过证书,但我不知道如何处理它们。服务器1和2上的两个应用程序都是Java应用程序 - 您是否知道我应该如何处理这些证书,可能是一些文献或链接到网页? – dulcyn

+0

一个简短的谷歌搜索想出了这个,这是接缝是你想要的(至少在第一看)http://it.toolbox.com/blogs/securitymonkey/howto-securing-a-website-with- client-ssl-certificates-11500 – MrSmith42

0

ServletRequest#getRemoteAddr()返回发送请求的客户端的IP地址。您可以通过匹配客户端的IP来过滤这些请求。对于其他客户端,您可以将其重定向到预定义的404 error页面。

0

您还可以将addPost地址限制为仅限localhost,并为更新目的而建立ssh隧道。

0

我想你使用的是Apache Web服务器,那么你可以配置一个虚拟主机并设置一个访问规则来拒绝所有的允许来自server1。这里的documentation

+0

可能是迄今为止最简单的解决方案 – tucuxi

+1

这可行,但这个限制将基于ip地址,而且这很容易绕过 – dulcyn

1

你可以在根目录下使用.htaccess文件:

<Directory AddPost>Allow from www.1.com</Directory> 

这只让www.1.com访问的页面。如果AddPost是文件,请使用<Files AddPost></Files>

希望这会有所帮助!

0

如果它是一个Tomcat服务器,您可以在web.xml中定义一个过滤器,该过滤器将仅从允许的来源过滤请求。