在我的网站中,我为会话对象设置了一些值,例如“user_status”,“user_name”等。 php文件如下所示:
<script type="text/javascript">
var logged = <? echo $this->session->getValueOf("user_status"); ?>;
</script>
<a class="show_message" href="#">SHow my status</a>
好吧,我有一个js脚本假装根据网站上的user status
做一个动作,所以,我有这个:
$('.show_status').click(function(event){
//ask for user status
if (logged){
//do something
}
else{
//do another action for visitors
}
});
四处走走我认为这是session
- &gt;之间流量数据的最佳方式。 javascript
,因为如果您在浏览器中检查网页来源,user_status
的值将会显示,并且可能会对网站安全造成风险。
提前致谢
编辑:
logged
var只接受一个布尔值。#(".show_status")
时,都必须执行js操作。答案 0 :(得分:3)
如果JavaScript只是用于接口的东西,并且没有任何后端效果,我可能不会过分担心处理逻辑客户端的不安全感。
如果安全性很重要,我建议您使用PHP编写适当的JavaScript函数。例如:
在正在查看的页面上,可能在标题中,您有:
<script type="text/javascript">
<?php
if ($this->session->getValueOf("user_status")) {
require_once('logged_in_user_functions.js');
} else {
require_once('visitor_functions.js');
}
?>
</script>
在`logged_in_user_functions.js'文件中你有:
function showComment(id) {
//logic that shows the comment here
}
function showCommentSubmissionForm() {
//logic that adds this form to the page goes here
}
同时,在`visitor_functions.js'文件中你有:
function showComment(id) {
//logic that shows the comment in a different way goes here
}
function showCommentSubmissionForm() {
//logic to display a message saying the user needs to log in to post a comment goes here
}
然后,您可以将逻辑添加到页面中,而无需检查用户状态。提供了正确的行为,包括.js文件:
<button id='add_comment_button' onclick='showCommentSubmissionForm()'>Add Comment</button>
这使PHP(以及服务器,而不是客户端)最终说出了向用户显示的内容。
答案 1 :(得分:2)
假设user_status
类似Active
,那么这不是真正的安全风险。
如果你想隐藏所有来自casualy prying eyes,你可以尝试使用加密的cookie,使用How to save encrypted data in cookie (using php)?之类的东西加密你的值。