我的客户端只想让用户访问某个页面几天。之后,客户必须再次与他联系。为此,我创建了以下代码。
<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或类似的东西。
感谢您提前提供的帮助。
您应该在PHP中(在iframe中)解决这个主要问题:
<?php
if( $today >= $expireDate )
{
include_once 'inactive.php';
}
else
{
include_once 'active.php';
}
?>
另一个解决方案:
或者,您可以使用base64_encode()来散列时间戳,而不是使用md5。
您正在使用iframe。是什么阻止客户端直接访问URL?
假设您可以控制iframe:中包含的网站
为每个客户端提供一个访问密钥。将该访问密钥存储在数据库中,并注明到期日期。确保他正在访问的URL需要访问密钥(例如GET参数),否则重定向到其他页面。
如果您无法控制网站,请在服务器上上传一个脚本,该脚本只做如上所述的访问控制,然后从真实的URL返回内容。
无论哪种方式,为了确保安全,您都需要让请求通过您所控制的脚本/服务器。