所以...我的网站的一部分是按观看次数付费。因此,我必须隐藏dom元素或使用访问级别进行显示。 我将访问级别存储在mySql中。值0是用户创建帐户后获得的标准值。登录后,他将在我的网站上具有某些功能,但不是全部。要解锁休息,他需要购买一个计划,然后他的访问权限最多增加1个。 因此,有关如何使用该访问级别。我应该使用吗?
c
然后是这样:
$_SESSION['access']= $row['access'];
或者我应该将其存储为cookie
if($_SESSION['access'] == 1){
// user with access lvl 1 can go to locked window
echo '<script> function goLocation(val){
window.location.href= "http://www.someweb.co.uk/load.php?titleID="+val;
}</script>'}
else{
// user with access lvl 0 can't go to locked window
echo '<script> function goLocation(val){
alert("Page locked... If you would like to go there buy a access");
}</script>'}
然后使用js调用cookie:
$cookie_name = "access";
$cookie_value = $row['access'];
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
并运行主要代码:
getCookie('access');
function getCookie(cname) {
var name = cname + "=";
var decodedCookie = decodeURIComponent(document.cookie);
var ca = decodedCookie.split(';');
for(var i = 0; i <ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
accessLVL = c.substring(name.length, c.length);
return accessLVL;
}
}
return "";
}
我知道我也可以通过AJAX调用来做到这一点,但我现在想等待回调。
所以我应该这样做吗?用更安全吗?或者..也许还有其他更简单的方法?
答案 0 :(得分:0)
如果您使用JavaScript进行检查,则攻击者(或错误用户)可以绕过检查并获得他想要的东西。
因此,您必须使用session
检查PHP中的访问权限。即使您正在检入PHP,也不要相信cookie的值。由于session
中的值在服务器端并且可以信任,而cookie
中的值可以从客户端设置,也可以设置为任何一个。