首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >指向php脚本的参数的安全性

指向php脚本的参数的安全性
EN

Stack Overflow用户
提问于 2022-03-07 21:28:36
回答 3查看 63关注 0票数 0

我目前正在开发一个注册和登录系统与HTML,CSS,JavaScript和PHP。

Expiration

用户在html的with样式输入字段中输入他的电子邮件和密码。现在,如果用户按下登录按钮,JavaScript将获得这些输入字段的用户电子邮件和密码,并使用参数email和密码调用login.php脚本。PHP脚本执行比JavaScript更重要的工作,并返回对的访问或拒绝。最后,JavaScript将显示用户错误或根据JavaScript答案提供访问权限。

Javascript片段

代码语言:javascript
复制
function loginuser(email, password) {
  if (email || password) {
    query('./php/login.php', null, [['email', email], ['password', password]]).then(function(obj) {
      console.log("REPLY");
      if (obj.error) {
        //ERROR
      }
      else {
        //ACCESS
      }
    });
  }
  else {
    //PASSWORD , EMAIL CAN NOT BE EMPTY
  }
}

function query(url, cmd_type, data_array) {
  var request = new XMLHttpRequest();
  var params= '';
  params = params + 'cmdtype=' + encodeURIComponent(cmd_type) + '&';
  if (data_array) {
    data_array.forEach(function(item) {
      if (Array.isArray(item[1])) {
        var serialized_tda = '';
        item[1].forEach(function(tdai) {
          serialized_tda = serialized_tda + "|" + tdai[0] + "," + tdai[1] + "|";
        });
        params = params + item[0] + '=' + encodeURIComponent(serialized_tda) + '&';
      }
      else {
        params = params + item[0] + '=' + encodeURIComponent(item[1]) + '&';
      }
    });
  }

  return new Promise(function(resolve, reject) {
    request.open('POST', url, true);
    request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    request.onreadystatechange = function() {
      if (request.readyState === XMLHttpRequest.DONE) {
        if (request.status === 200) {
          var response = JSON.parse(request.response);
          resolve(response);
        }
        else {
          resolve({error: 'Cant connect!'});
        }
      }
    };
    request.send(params);
  });
}

怀疑-问题

由于我正在调用一个带有参数的脚本,所以可以在浏览器开发控制台中的“网络”选项卡中找到包含我发送的所有参数的脚本。

当我稍后在生产中使用SSL证书时,这种情况会消失吗?在通过参数将数据发送到php之前,是否必须对JavaScript中的数据进行加密,还是这是正常的?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-03-07 21:37:47

不,使用SSL不会导致该信息在生产中从“网络”选项卡中消失。

SSL加密客户端(即用户登录)和处理它的服务器之间的数据。以纯文本发送它通常是可以的,只要它总是通过HTTPS,因为这将加密流量,使它对任何嗅探攻击都是胡说八道。

此外,来自网络选项卡的信息仅对输入密码的客户端可见(因此他们知道),因此不应将其视为应用程序的安全漏洞。

票数 1
EN

Stack Overflow用户

发布于 2022-03-08 04:59:49

点击“提交”发送表单package

  • Browser

  • 浏览器日志内容,如果您正在访问https站点

  • 浏览器发送加密数据

  • 服务器收到您的请求

G 211

我们看到了步骤2内容

票数 1
EN

Stack Overflow用户

发布于 2022-03-08 09:37:42

正如前面的答案所述,浏览器的开发工具只显示浏览器看到的内容。一旦它离开您的浏览器在HTTPS,它是加密的。

不再建议在发送之前对应用程序中的密码进行加密,因为始终会有其他安全隐患。例如,这是在HTTP身份验证中实现的,其影响是必须将未散列的密码存储在服务器上。

以明文形式发送您的密码。确保您的服务器只接受HTTPS (永久重定向),并以散列形式存储在服务器上。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71387477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档