Objective
目标是为经过身份验证的用户提供库存管理功能。其他访问者只能查阅 list 并过滤他们的发现。
Authentication
身份验证是通过 ajaxSession()
javascript 函数进行的,如此处所述。
-
PHP / Ajax : How to show/hide DIV on $_SESSION variable value?
(见答案) -
PHP: $_SESSION doesn't seem to get set. Any idea?
现在,$.ajax()
委托(delegate)从 PHP 服务器获取正确的答案。现在,我虽然只是使用 CSS 类 .hide
和 .show
,但出于安全原因,这似乎不是一个好主意。
The
ajaxSession()
function
function ajaxSession(actionUrl) {
$.ajax(function() {
url: actionUrl
success: function(authenticated) {
if (authenticated == 'true') {
// create buttons here.
} else {
// ensure to empty those div
}
}
});
}
注意在 $.ajax()
调用中还设置了其他成员,但重要的是那里。
最佳答案
安全机制应该在服务器端实现!
如果您在 JS 中创建一些特定于登录的按钮,则不会存在安全漏洞。只需确保您不输出敏感数据从您的后端 (PHP) 或您执行任何未经授权的操作(再次从您的后端)。
始终在服务器端(针对每个操作)检查用户是否已获得授权!
将登录状态存储在 session 等中。不要依赖 isLoggedIn=1
等 URL 参数或 POST 数据。它们来自客户。客户端始终是应用程序中不受信任的部分。
关于javascript - 从 <div> 添加/删除 <button>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19167760/