我是发展中的学生(第二年)。我目前正在实习,我的任务之一是在网站上添加身份验证系统。
它"有效",但我认为这是一个非常糟糕的代码,我正在寻找有关最佳实践并改善该解决方案的建议。
该项目只是一个常规的库存管理系统,菜单允许用户选择读或写入,然后(单击后)滚动菜单让他们从更多选项中进行选择。
页面包含此类:
<style type="text/css">
/* a li.unclickable { text-decoration: none; } */
/* a li.unclickable:hover { cursor: default; } */
.unclickable {
pointer-events:none;
opacity:0.7;
}
</style>
和身份验证仅在此处使用:
<?php
if ($admin =="1") {
echo '<li>';
}
else {
echo '<li class="unclickable" >';
}
?>
//some code then
</li>
$admin
值为0或1,存储在会话中,理论上一切都很好,我可以摆脱它,但是您只需要按F12并编辑类(只需删除),然后整个身份验证系统变得无用。
有没有办法防止用户这样做,还是我应该选择其他方法来解决问题?
公司可能不会找到答案,因为他们没有任何开发人员/技术人员,但我认为可以给他们这个并说这是完美无瑕的。
我在MVC中使用PHP,欢迎任何建议或问题,感谢您的时间。
无法阻止浏览器DevTools。HTML页面完全控制了用户。每个安全检查都必须完成服务器端。
正确的位置是在登录页面中(通过按下按钮来调用一个),在任何身份验证逻辑之前再次检查$admin
的值。