我试图将PHP和JS的混乱分开。我不是在初稿中寻求完美,但任何事情都比现在的状态更好。
当前(全部在一个文件中):
<?php if( checkSecureUserStuff ): ?>
//bunch of js like including admin features
//not fun stuff
<?php endif; ?>
提出:
PHP文件
if( checkSecureUserStuff ){
$userAccess = 'admin';
}
...
//Later in file, I know this still not ideal
<script>
var useraccess = <?= json_encode($userAccess) ?>;
</script>
JS文件
if( useraccess == 'admin' ){
// do the admin related JS stuff here
}
显然,在最终的HTML中,var useraccess = 'admin';
将是可见的。在这一点上,它是否可以纵?我知道这个设计不是很好,但它是非常不安全的吗?
哦,是的,我应该提到。仍会在服务器上检查操作。这更多的是关于保护 UI 并保持某些内容被禁用。服务器仍将验证操作。
我想问题更多的是关于如果在文档加载时设置和检查变量,用户是否可以操作 UI。米勒布尔提到设置断点已经部分回答了.没想到
是的。用户将能够打开其浏览器控制台,查看代码,在设置的断点处暂停代码,然后在控制台中编写代码以编辑变量。
你永远不应该相信你的前端的安全类型的东西 - 是的,编写代码来限制访问,但始终仔细检查你的后端,并假设任何请求都是不安全的。
你可以做一些事情来掩盖你的代码,使其更难操作,比如缩小代码,但没有什么是100%有效的,所以你应该始终假设前端受到损害,并对任何传入的数据或请求采取必要的预防措施。