繁体   English   中英

验证点击是否来自特定网站

[英]Verifying that the click came from the specific website

我正在构建一个自定义身份验证过程,其中通过单击网站 B 上的链接(包含唯一哈希)来的每个用户都会自动登录到网站 A。登录过程不是问题。

问题是关于安全性:如何确保用户来自特定网站而不是来自其他任何网站? 我可以验证变量$_SERVER['HTTP_REFERER']但它很容易被欺骗。 有没有办法获得引荐来源 IP(不是$_SERVER数组中的客户端机器 IP)或任何其他方式来保护这个过程?

建议一

当在第一个网站上单击链接时,将时间和用户 ip 存储在数据库中。

然后在第二个网站上发出用户请求时,它可能需要时间和用户 ip 并询问第一个网站是否最近点击了该链接 ip。

建议二

客户站点上的链接可以链接到他们站点上的一个页面,该页面使用 PHP 的file_get_contents()来显示链接的页面。 因为请求链接页面的是 PHP,所以用户无法欺骗 document.referrer。 我不知道这将如何影响 cookies、外部参考等。

它肯定会破坏相对链接。

将链接从

`<a href="https://your-website.com/page/to/link/to">Click Here</a>`

`<a href="https://client-website.com/special-page?linked-page-url=https://your-website.com/page/to/link/to">Click Here</a>`

客户网站上的特殊页面:

<?php
$linkedPageUrl = $_GET['linked-page-url'];
var_dump(file_get_contents($linkedPageUrl));
?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM