如何增强HTTP认证安全性?

问题描述:

我得到了一些漂亮的导轨应用程序工作,它的所有jiffy和和平。我想要保护一小部分,只是感觉错误地按照现在的方式执行 - 我的登录过程中,我使用带有远程选项的form_tag通过POST发送文本和密码字段的内容,原因很明显。如何增强HTTP认证安全性?

仅通过HTTP发送密码让我感觉很脏。从这里我可以看到,我有以下选择:

  1. 学习生活,并希望最好
  2. 通过学习一个东西真棒有我的控制器做魔术轨辅助-I-dunno-关于技巧
  3. 构建一个单独的应用程序,该应用程序可以在HTTPS上运行,并通过回到原来的方式让生活变成活生生的地狱。
  4. JavaScript使用加密

不知怎的,我觉得我最好的选择是4 - JavaScript的加密。 但是,如果用户键入他/她的密码,并且它被服务器生成的部分加密,它应该是安全的(解决通过HTTP以纯文本发送问题的关系)并解决我的问题I猜测。但在轨道方面,为了实现这一目标,我的数据库中保存了(是的,我还有很多事情可以覆盖)简单的密码。

我需要一些帮助 - 一些指针。

+5

不,解决方案是使用HTTPS的应用程序。不过,我不确定为什么会让你回到原点。 – Bergi 2014-09-03 17:48:19

+0

我自己并不使用Rails,但我很难相信启用SSL会涉及到应用程序的完整重写。无论您在前端使用何种形式的加密,您绝对不应将纯文本密码保存在数据库中。 – StriplingWarrior 2014-09-03 17:49:22

+1

阅读以下内容:http://security.stackexchange.com/q/17129/8749,http://security.stackexchange.com/q/8596/8749,http://security.stackexchange.com/q/47619/8749,http://security.stackexchange.com/q/53488/8749 – Bergi 2014-09-03 17:52:45

为什么不应该使用选项4:执行错误操作并将用户置于危险中的风险比使用已存在的东西时要高得多。

你应该怎么做:通过https传输它来保护你的用户数据。把

config.force_ssl = true 

config/environment/production.rb,你准备好了。 (那么告诉网络服务器在哪里适当的证书是...)

+0

不会使所有流量加密:S包括不需要验证的部分? – MiningSam 2014-09-03 17:55:13

+0

是的,但...谁在乎?无论如何,大多数网站正在慢慢迁移到这种行为(例如Facebook)。我几乎没有看到将HTTPS限制到您网站特定部分的原因。如果你只想保护一个控制器,你可以看看[这个答案](http://*.com/a/14700213/3340665)。 – GhostGambler 2014-09-03 18:04:07

+0

谢谢!该评论有我正在寻找的答案! – MiningSam 2014-09-04 17:53:21