【问题标题】:Basic principles for securing a web-app? [duplicate]保护网络应用程序的基本原则? [复制]
【发布时间】:2011-03-27 02:07:09
【问题描述】:

可能重复:
PHP Session Security

我刚刚完成了 Web 应用程序的基础代码(主要代码),并且我已经集成了一个基本的用户系统。这是我的第一个网络应用程序,所以我想知道我应该使用哪些东西来保护它?我已经知道mysql_real_escape_string()strip_tags() 之类的东西,但还有什么?如何通过 cookie 和会话安全地存储用户名和密码?非常感谢任何提示、教程等!

【问题讨论】:

标签: php mysql security web-applications


【解决方案1】:

OWASP 提供了一些关于最常见漏洞的非常有用的指南以及关于如何缓解这些漏洞的良好建议。您应该熟悉它们所涵盖的 attacksvulnerabilities

通读这些可能需要时间,但不会太多,也不是特别密集的阅读。也许你应该首先关注他们的top 10 security risks

【讨论】:

  • 我感到困惑的一件事是,我在很多地方(包括 ggg 提供的链接)都读到不要将用户名和密码存储在 cookie 中。那么,您如何存储它们,以便用户不必每次都登录。还是我不应该将它们作为纯文本存储在 cookie 中(md5 编码它们?)
  • 使用会话 ID。会话 ID 在 cookie 中,在您的服务器上,您将用户名和其他会话变量与 ID 相关联。请注意,会话 ID 也存在安全风险,因此请务必阅读相关内容(例如,会话固定)。
  • 但是一旦用户关闭浏览器,会话和数据之间的连接不会丢失吗?
  • 如果会话 ID 保存在 cookie 中,则不会:)
【解决方案2】:

CWE/SANS Top 25 Most Dangerous Software Errors帮了我很多。

real_escape_string 只对抗 MySql 注入。此外,当用户必须输入数字时,例如,从index.php?newsid=3 之类的 URL 读取 newsid=n,请通过在 $_GET['newsid'] 之前添加 (int) 来确保 $_GET['newsid'] 是整数。

一些非常基本的东西;)希望链接有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-22
    • 2011-09-05
    • 1970-01-01
    相关资源
    最近更新 更多