【问题标题】:Private HTTP/POST [closed]私有 HTTP/POST [关闭]
【发布时间】:2012-11-14 21:43:20
【问题描述】:

我有一个向 PHP 服务器请求的 HTML 代码。我只想参加完成我的 HTML 代码的请求,而不是其他请求。我想用 javascript 做一些类似令牌的事情,并且只回答正确的令牌,但我有一个问题:我使用 MediaWiki,而 javascript 代码是“开源”的(是的,POST 请求是从 MediaWiki 完成的)。

有人知道如何进行私人 POST 请求吗?

【问题讨论】:

  • 除了你已经想到的token之外,你只能通过检查$_SERVER['HTTP_REFERRER']来真正做到这一点,但这也是不可靠的。只要您的脚本没有任何授权或 IP 限制,您就无法轻易阻止对它的请求。
  • 有什么方法可以得到关于提出请求的人的可靠信息?

标签: php javascript post


【解决方案1】:

生成一个随机令牌,如

$_SESSION['token']=sha1(uniqid(mt_rand(), true));

将令牌值放入隐藏输入中

<input type='hidden' name='token' value=$_SESSION['token'] />

然后,在您的 php 中检查令牌是否已发送

if($_REQUEST['token']!=$_SESSION['token']){
    syslog(LOG_ERR, "Request from other site ...");
    die("Request failed. (Disabled cookies?) Contact administrator: ...");
}

看这个链接:http://en.wikipedia.org/wiki/Cross-site_request_forgery

【讨论】:

    【解决方案2】:

    您想了解authentication

    【讨论】:

    • 因为它是MediaWiki,所以不需要认证。
    猜你喜欢
    • 1970-01-01
    • 2022-12-06
    • 2013-01-11
    • 2012-07-02
    • 1970-01-01
    • 1970-01-01
    • 2012-11-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多