需要登录才能查看的网页


webpage requiring log in to view

我正在制作一个网站,我想让网站的许多页面无法访问,除非你登录,就像Facebook或电子邮件服务一样。

它将是一个流媒体网站,并且将是数据库驱动的,因此它必须是灵活的,因此使用.htaccess和CGI流程是不可能的。

我听说有CMS经理,但他们接管了一切,除了通过他们之外,你什么都做不了,这是我不想要的...... 所以我一直在思考一段时间,并想出一种方法,让服务器检查登录,如果没有找到登录名,然后将他发送到另一个页面。这个 peusedo 代码应该更容易理解:

<?php
  session_start();
  if ($_SESSION["islogged"] == no)
    { load some data and block some OR go to login page; }
?>

但是该网站将收取服务费用,我不想冒任何泄漏的风险,这个想法是我的,我在网上找不到任何可以帮助我的东西,而且我不确定是否有可能创建一个虚假会话......无论如何,我都计划加密会话详细信息,但这里的一些事实会有所帮助。

我需要知道的是:

  1. 这可靠吗?可以绕过吗?
  2. 有没有另一种更好、更安全的方法?

这样做的方法是将用户变量设置为数据库中的实际用户。

因此,当用户登录时

$_SESSION['user'] = $_user_record_from_database;
if($_SESSION['user']){
    //Do user logged in stuff
}else{
    //Do user not logged in stuff
}
//To log a user out just set $_SESSION['user'] = NULL

如果他们没有登录,并且在他们登录时加密会话,这似乎是相当安全的。

但是,我实际上会建议另一种方法。我知道你避免使用CMS平台,因为他们的控制,但我建议Wordpress。您可以创建自己的插件,并使用短代码在页面上发生各种魔术,并且只需让WP处理它们是否登录,并且您的插件可以使用WP登录功能来显示或不显示内容。这使您可以完全控制,您甚至可以创建自己的注册表单,并根据需要调用WP register用户函数。