【问题标题】:validation $_GET request验证 $_GET 请求
【发布时间】:2015-01-10 05:31:42
【问题描述】:

SERVER1(80.181.155.138)

Java 脚本

window.open("http://91.221.23.2?user_uid=123456789"'_blank');

SERVER2(91.221.23.2)

$use_uid=$_GET["user_uid"];
checkUser( $use_uid);//connect to mysql SERVER1(80.181.155.138) and check user and permision

问题:

如果有人在 server1 和 server2 之间嗅探数据包并发送请求(http://91.221.23.2?user_uid=123456789) 如何验证这个请求? 我想分享 c:\windows\tem 并使用 $_SESSION 发送 user_uid 但我认为这不是真的。

我们如何理解一个请求来自验证源或无效资源?

抱歉语言不好:(

【问题讨论】:

  • 学习OAuth,你可能会得到你的解决方案
  • 定义“验证源”。究竟什么是“有效来源”,什么不是?
  • 验证源是来自80.181.155.138的请求,如何获取请求的ip发送者?

标签: php validation security


【解决方案1】:

你可能误会了什么。您的服务器 80.181.155.138 正在服务于包含此 Javascript 代码的网站。任何访问者,比如我在 IP 1.2.3.4 的计算机上,都会访问该站点。然后我的浏览器执行该 Javascript 代码并向 91.221.23.2 发出请求。请求将来自 1.2.3.4。 80.181.155.138 的服务器在这种情况下完全不相关。

本质上,91.221.23.2 提供了一个任何人都可以访问的公共 API;任何人需要才能访问。您不能将此限制为“有效来源”。

有 3 次握手身份验证方案,例如 OAuth。调查这是否适合您。不过,您首先需要了解上述实际情况。

【讨论】:

  • 好的,如果我发送带有 user_uid 的$checker=md5(date("Y-m-d H:i:s")) 并在目的地检查这个 md5?这是对的吗?
  • 几乎没有。目前尚不清楚您的情况到底有什么安全要求,所以我真的不能说什么。但是发送日期的哈希值并不安全。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-10-18
  • 2018-04-02
  • 2017-11-21
  • 2020-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多