我的客户希望仅在几天内授予用户访问某个页面的权限。之后,客户必须再次与他联系。为此,我创建了以下代码。
<head>
<style>
body {height: 100%;width: 100%;overflow: hidden;padding: 0px;margin: 0px;}
iframe {border: 0px;width: 100%;height: 100%;}
</style>
</head>
<html>
<body>
<?php
$today = strtotime(date("Y-m-d"));
$expireDate = strtotime("2013-12-01");
if ($today < $expireDate) {
echo "<iframe src='http://www.domain.eu/active'>";
} else {
echo "<iframe src='http://www.domain.eu/deactive'>";
}
?>
</body>
</html>
所以基本上当今天的时间小于$expireDate = strtotime("2013-12-01");
中的日期时,它会显示非活动页面。但上面的代码位于客户端必须上传到其服务器的index.php文件中。现在,当客户端有点聪明时,他/她可以将日期更改为他们想要的任何内容,并且可以随时访问。如何使这部分$expireDate = strtotime("2013-12-01");
使用MD5或类似的东西。
感谢您的帮助。
答案 0 :(得分:2)
你应该在PHP中解决这个主要问题(在iframe中):
<?php
if( $today >= $expireDate )
{
include_once 'inactive.php';
}
else
{
include_once 'active.php';
}
?>
另一种解决方案:
或者您可以使用base64_encode()来哈希时间戳而不是使用md5。
答案 1 :(得分:0)
您正在使用iframe。什么阻止客户直接访问URL?
假设您可以控制iframe中包含的网站:
为每个客户端提供访问密钥。将该访问密钥存储在数据库中,并带有到期日期。使它访问的URL需要访问密钥(例如GET参数),否则重定向到您的其他页面。
如果您无法控制该网站,请在服务器上上传一个脚本,该脚本除了执行上述访问控制之外别无其他操作,然后从真实网址返回内容。
无论哪种方式,为了确保安全,您需要通过您可以控制的脚本/服务器来处理请求。