我有一个web服务(返回数据),它只能被少数几个“白名单”远程服务器访问。因此,当远程服务器向我的服务器发送请求时,我将检查$_SERVER['HTTP_REFERER']字段中的白色域名和相应的IP地址(我的web服务通过全局数组知道这个地址)。这种白名单请求的方法能被绕过吗?我知道实现referer spoofing....but很容易,请记住,我正在检查引用程序和相应的IP地址,这两个IP地址都是我的应用程序确切知道的。
如果这不是一件安全的事情,是否有人有其他的方法只允许“白名单”域访问给定的web服务?
发布于 2013-11-25 08:52:46
如前所述,我不知道为什么在您的场景中首先设置HTTP引用头,但是让我们假设它是,并且它的域对应于客户端的IP。Referer报头是客户端发送的任意值,很容易被欺骗。客户端的IP是不可伪造的(不包括复杂的网络级别攻击,这些攻击要求攻击者基本上已经破坏了一方或另一方)。您要问的是,使用不安全、无意义的值来确认一个已经尽可能安全的值是否有意义。答案是否定的。只要坚持IP过滤器,这已经足够好了。
如果您想进一步加强身份验证,请使用适当的身份验证方案,其中您与客户端共享一个秘密(用户名/密码、API令牌、Oauth或类似的)。
https://stackoverflow.com/questions/20187346
复制相似问题