你如何使用JavaScript阅读HTML中的PHP会话?

时间:2014-02-18 14:59:56

标签: javascript html cordova

首先,我正在开发一个使用phonegap / cordova的移动应用程序,所以这就是我想要走这条路的原因。

我想知道是否有可能将php的会话状态转换为javascript,因为我希望将整个应用程序仅保护给用户。

我拥有的php如下;

<?php

$dbhost = '';
$dbuser = '';
$dbpass = '';
$db = '';
$tbl_name=""; 

$conn = mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($db);

$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];
$encrypt_password=md5($mypassword);

$myusername = stripslashes($myusername);
$mypassword = stripslashes($encrypt_password);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($encrypt_password);
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);

$count=mysql_num_rows($result);

if($count==1){

    session_register("myusername");
    session_register("mypassword");
    session_start();
    $_SESSION["Login"] = "YES";
    header("location:login_success.html");
    echo $_SESSION['data'];
}
else {
    session_start();
    $_SESSION["Login"] = "NO";
    echo $_SESSION['data'];
}

?>

并且html文件包含以下javascript

<script>$.get('checklogin.php', function(data) {
                if (data != "YES"){
                        window.location.replace("http://aam.prettypottery.ie/index.html");
                                    }
        });</script>

我认为我很接近,只有每当我试着查看我的任何html页面时,他们都会把我送回index.html。

任何帮助都会很棒。感谢

1 个答案:

答案 0 :(得分:2)

是的,看起来你很亲密。但反过来说。

如果安全性具有任何重要性,您应该考虑到这一点:

  • 浏览器不负责决定用户是否获得授权以及页面是否可访问;
  • 如果访问的保留页面没有充分授权(未登录),则服务器应重定向;
  • $.get('checklogin.php', function(data) {根本不应该存在,这应该在服务器端完成(在PHP中);
  • 您的查询$sql="SELECT * FROM $tbl_name WHERE ...仍然容易受到攻击,至少使用PDO;
  • 使用MD5对密码进行哈希处理(未加密),这可能足以满足您的网站需求,但通常使用腌制和更强的哈希值(至少SHA1);
  • 不仅要测试结果计数,还要实际从数据库中获取一些信息并使用它进行身份验证。

这样的事情:

SELECT username FROM accounts WHERE ...

和此:

$authenticated = strcasecmp($username, $resulting_username) === 0;

要立即解决您的问题,您必须在PHP中呈现至少一个告诉Javascript代码重定向的变量。这样的事情。

在HTML / PHP中:

<script>
  if (<?php echo ($authenticated ? 'true' : 'false'); ?>)
  {
    alert("Good boy!");
  } else {
    alert("Bad Trudy is bad!");
  }
</script>

制作此HTML结果:

<script>
  if (true)
  {
    alert("Good boy!");
  } else {
    alert("Bad Trudy is bad!");
  }
</script>

停用Javascript就足够了,页面根本不会对此代码作出反应并显示其内容而没有任何阻碍。

链接: