Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security 如何限制访问我的网页_Security_Http_Spring Security - Fatal编程技术网

Security 如何限制访问我的网页

Security 如何限制访问我的网页,security,http,spring-security,Security,Http,Spring Security,我有一个指向搜索页面的url(例如)。它不是webservice端点,它只是一个基本url(通过Spring控制器)。访问页面没有安全性,您可以在浏览器中输入链接,它将呈现结果 我想要的是找到一种方法来阻止其他站点向这个url提交请求,除非它们被明确允许 我构建了一个过滤器,它将截获对该页面的所有请求,并执行一些验证。如果验证失败,它们将被重定向到另一个页面 问题是要执行什么样的验证。。。我尝试使用referer字段查看请求是否来自“允许”的站点,但我知道referer字段并不总是填充的,并且很

我有一个指向搜索页面的url(例如)。它不是webservice端点,它只是一个基本url(通过Spring控制器)。访问页面没有安全性,您可以在浏览器中输入链接,它将呈现结果

我想要的是找到一种方法来阻止其他站点向这个url提交请求,除非它们被明确允许

我构建了一个过滤器,它将截获对该页面的所有请求,并执行一些验证。如果验证失败,它们将被重定向到另一个页面

问题是要执行什么样的验证。。。我尝试使用referer字段查看请求是否来自“允许”的站点,但我知道referer字段并不总是填充的,并且很容易被伪造

有没有办法做到这一点


我们也有IHS,所以如果有什么事情可以在那里做,那就太好了。

如果你真的想保护页面不被访问,我建议实施某种系统,允许用户登录

您可以尝试检测传入请求的IP地址,但我认为这很容易被欺骗

事实上,公开的页面可以在您设定的范围内接受任何形式的询问。也许限制页面返回的数据是一个更实际的选择


这就是像Facebook和Twitter这样的网站实现阻止未经授权的用户访问资源的原因。

如果引用页面传递了一个名为“token”的POST变量,那么只运行结果如何或者设置为某个值的东西,该值是您为每个将进入搜索页面的应用程序提供的。如果您收到一个带有查询字符串的页面请求,而不是“token”的POST值,那么您知道这是一个未经授权的请求,并可以相应地处理它

如果您知道可以与您的服务联系的站点的IP,您可以将Apache作为代理,并使用它来允许/拒绝对特定目录/URL的访问。

我假设您希望避免您的站点被机器人“刮伤”,但确实希望允许人类访问您的搜索页面

这是一个相当普遍的要求(谷歌“反刮”)。按照健壮性的升序(但用户友好性的降序):

  • 基于HTTP头(IP地址、用户代理、引用者)阻止请求
  • 实现某种验证码系统
  • 要求用户在访问搜索URL之前登录

你也许可以购买一些现成的魔法(声称)为你做这一切,但如果你的数据足够有价值,那些想要它的人会雇佣机械土耳其人来获取它…

进行安全认证。 您可以使用openssl或java密钥工具进行自签名认证 您必须向您的客户发送一份证书副本

如果此客户端没有此证书,它将无法调用您的服务

以及在你的网络容器中启用证书。我不知道其他容器,但是
在ApacheTomcat中,您可以在ur server.xml的connector标记中执行此操作。您的网页是供任何人访问的,还是只供登录到您站点的人访问?因为如果只是针对登录的用户,您可以保护它不被未登录到您站点的任何人访问……我建议用户只希望获得保护页面的建议:/@Coulton我们的应用程序位于公司内部。应用程序有SSO,基本上所有员工都会通过SSO。因此,任何人都可以访问该页面。问题是我不希望其他公司网站链接到这个页面,除非我们已经授权该网站。