【问题标题】:PHP Session Variable In JavaScriptJavaScript 中的 PHP 会话变量
【发布时间】:2012-05-18 13:53:46
【问题描述】:

我如何在其中输入 php,所以当它有正确的密码时,它会将信息存储为 cookie,然后也允许删除它。

  <SCRIPT language="JavaScript">
    <!--hide

    var password;

    var pass1="password";

    password=prompt('Please enter your password to view this page!',' ');

    if (password==pass1){
      alert('Password Correct! Click OK to enter!');}
    else
       {
        window.location="//Some Location//";
        }

    //-->
    </SCRIPT>

【问题讨论】:

  • 你不需要 PHP 创建一个 cookie,你可以从 JavaScript 中做到这一点。但是您确实需要 PHP 进行身份验证。像这样使用 JavaScript,你的网站会在几秒钟内被一个 5 岁的孩子黑掉。
  • @bfavaretto 4 岁。我认识一些聪明的孩子。
  • @jeroen,我希望我的回答足够有建设性
  • @Starx 是的,在研究工作方面,我想反对票也是合理的......

标签: php javascript session passwords


【解决方案1】:

如果它足够简单(根据标题)

var varname = '<?php echo $_SESSION["variable_name"]; ?>';

但你必须认真考虑你的逻辑。您正在检查 javascript 上的身份验证,这将是 dumbest 在 Web 应用程序中移动。

密码完全暴露,任何人都可以查看或关闭整个javascript,那么你的整个网站就会变得脆弱。


我的建议是对 PHP 页面的 AJAX 请求,该页面单独检查和验证密码,然后将消息返回给 Javascript。

【讨论】:

  • 我会怎么写它的 $_SESSION["variable_name"] == pass1
  • @user1345650,你不能那样做,php在服务器上运行,javascript在客户端机器上运行
【解决方案2】:

这是完全错误的:

  • 您的密码将显示在页面的源代码和浏览器的历史记录中,任何人都可以看到。所以即使他们没有密码,他们也可以通过查看源代码来获取它。
  • 您需要保护当前页面服务器端,因为任何禁用 javascript 的人现在都可以打开它。一种简单的方法是处理登录服务器端并为成功登录的用户设置某个会话变量。然后,您可以在页面顶部检查是否设置了该会话变量。

【讨论】:

  • //Some location// 似乎是“拒绝访问”页面,而不是最终目的地(我假设是当前页面,只需禁用 JavaScript 即可访问)。
猜你喜欢
  • 2017-07-08
  • 2014-01-23
  • 2015-12-18
  • 1970-01-01
  • 2011-06-12
  • 1970-01-01
  • 2013-08-06
  • 1970-01-01
  • 2012-08-03
相关资源
最近更新 更多