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