防止在网站上的浏览器中编辑代码

问题描述 投票:0回答:1

我对编程相当陌生,我开始制作一个网站来练习,过了一段时间我发现我的登录页面可以很容易地被操纵,只需在浏览器中更改我的 JS 代码。我现在问自己如何才能预防这种情况? 可能是个愚蠢的问题:)

onLogin: async function(oEvent) {
            oEvent.preventDefault();
            const username = this.byId("usernameInput").getValue();
            const password = this.byId("passwordInput").getValue();

            const response = await fetch('http://localhost:8081/loginData', {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/json'
                },
                body: JSON.stringify({username: username, password: password})
            });
            const result = await response.text();
              if (**result === "true"**) {    //To f.e if(1===1)
                console.log("result: Password Correct");

                    this.oDialog = await Fragment.load({name: "ui5.walkthrough.view.RestartDialog", controller: this});
                    this.oDialog.open();
            } else {
                MessageToast.show("Site not implemented yet \nor no access.\n " +
                "please contact to enable or implement site", {
                duration: 3000,
                    });
                }
            }
javascript security spring-security sapui5
1个回答
0
投票

不幸的是,没有明确的答案,因为这很大程度上取决于 a) 您的页面的功能 b) 它需要有多安全。一般的答案是在用户无法操作的地方做任何安全的事情 - 即在服务器端代码中(而不是 js - 或者更具体地说,通常两者)。需要平衡安全性是否超过客户端代码的便利性。

因此,例如,在这种情况下,使其更安全的第一步可能是:当登录名+密码有效时,而不是服务中的

return "true";
,而是执行
return "ui5.walkthrough.view.RestartDialog";
,然后使用ajax调用的返回值
Fragment.load
,而不是在页面上。

评论中的全部归功于@fdomn-m

© www.soinside.com 2019 - 2024. All rights reserved.