0

我正在尝试根据用户的登录状态在我的应用程序中显示/隐藏表单。登录时应该显示,退出时隐藏。此表单不是用于登录用户的表单。用户的登录状态是通过 facebook 登录按钮获取的,该按钮是通过 javascript sdk 启用的。

我想过用两种方法显示和隐藏表单:

  1. 使用 jQuery 通过更改 CSS 来显示/隐藏表单
  2. 使用 ajax .load() 插入包含该表单的 html/php 片段

但是,使用这两种方法,用户仍然可以使用浏览器开发工具访问表单。使用第一种方法,未​​登录的用户可以简单地进入 Chrome 或 FF 的开发者工具控制台并切换display:nonevisibility: hidden在表单的 CSS 样式中。然后他们可以在表单中输入值并仍然成功地将数据插入到数据库表中。

使用第二种方法会困难得多,但用户仍然可以将 HTML 元素插入 DOM(在 Chrome 中的“元素”选项卡下)并通过在我的 .js 文件中查找它们来引用我正在运行的脚本。

有没有做这个客户端的安全方法?我考虑过使用 PHP 会话,但是正如我上面提到的,用户登录状态的条件是用 javascript 处理的,我不确定如何将 js 中的简单条件与 php 会话集成。

例如,现在基于登录状态处理应用程序流的条件结构非常简单:

if(response.status === 'connected') { // user is logged in 
       // js to do something, e.g. display form
       } else { // user is logged out
        /// js to do something else, e.g. hide form 
      }
4

1 回答 1

0

您永远不能“信任”用户的输入。不管你做什么。使用开发人员工具,您可以轻松地将 HTML 添加到网站并将值发布到服务器。您甚至可以编辑 POST 本身并添加您想要的任何数据。安全和检查需要在服务器端完成。您可以简单地使用您的 jQuery 显示/隐藏并在服务器端进行验证。

于 2013-07-04T05:05:19.933 回答