我是一名发展中的学生(第二年)。我目前正在实习,我的任务之一是为网站添加身份验证系统。
它“有效”,但我认为这是一个非常糟糕的代码,我正在寻找关于最佳实践和改进此解决方案的建议。
该项目只是一个普通的库存管理系统,菜单允许用户选择读取或写入,然后(点击后)滚动菜单让他们从更多选项中进行选择。
该页面包含此类:
<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
的值。