首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >和MySQL安全的web应用程序-整个网站作为一个index.php文件是或否?

和MySQL安全的web应用程序-整个网站作为一个index.php文件是或否?
EN

Stack Overflow用户
提问于 2012-04-01 23:32:03
回答 4查看 940关注 0票数 0

我正在工作的网络应用程序,将使用PHP和MySQL。应用程序将处理机密数据。我需要让它尽可能的安全。

我不希望应用程序用来连接到数据库的MySQL用户的密码是在明文格式(例如根帐户)的PHP文件中编写的。

正因为如此,我用存储过程制作了伪MySQL角色系统。用户将使用其MySQL用户名和密码登录到应用程序。他们将只有执行MySQL存储过程的权限,但对存储过程内部使用的表没有SELECT、INSERT、UPDATE和DELETE权限。存储过程的定义者将是root帐户。

我对此有一个问题。也就是说:我不想在会话中以明文格式存储登录表单数据(examole的密码)。我无法使用会话将mysql连接资源对象从一个页面传输到另一个页面。

我现在正在考虑让整个web应用程序成为一个大的index.php文件。这样,当我需要MySQL连接资源时,它总是可用的。

有没有更好的方法来做到这一点?可能吧。我不想在浪费了太多工作后后悔我的选择:)。

提前谢谢你。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-04-02 00:13:34

存在一种称为Front Controller的设计模式,基本上它所做的就是通过一个页面为整个应用程序提供服务。您实现自己的dispatcher,dispatcher处理所有请求。例如实例化哪个对象或包括哪个页面。这限制了对未知对象的安全利用。

此外,对于会话劫持,您可以通过监视和检查

重新生成id

  • Tokens

  1. 用户代理
  2. 会话

数据库部分相当令人印象深刻,但如果其他人不得不扩展、调试您的应用程序,可能会增加的复杂性。您可以使用prepared statements,甚至可以使用更好的替代ORM,比如DoctrineData Objects

主要的安全漏洞是通过XSS和CSRF,因此您必须在表单中实现令牌传递机制,并检查“请求来源”。

最后,我想指出web应用程序中可能存在各种安全漏洞。为了应对这些漏洞,有很多好的框架。这些问题和漏洞都是在那里预先处理的。你可以考虑一下业务逻辑,让别人来为你处理。与流行的想法相反,使用框架实际上会使你在架构、安全性和请求方面的增长更加陡峭。

希望这能有所帮助!!干杯!

票数 0
EN

Stack Overflow用户

发布于 2012-04-01 23:53:01

您仍然需要将用户名和密码保存到会话中。但是不要以明文形式保存密码,请使用带有自己的哈希的openssl_encrypt和openssl_decrypt。

http://php.net/manual/en/function.openssl-encrypt.php

但是这个函数在PHP 5.3.0中出现了

票数 1
EN

Stack Overflow用户

发布于 2012-04-02 00:21:13

您永远不需要在会话中存储密码,也不需要为应用程序的每个用户创建单独的MySQL用户。这些东西不会让你的应用程序更安全,实际上可能会降低它的安全性。

以下是一些建议:

  • 创建一个只具有读取所需数据的必要权限的MySQL用户。
  • 将MySQL连接信息存储在文档根目录之外的

文件中,并将此文件包括在需要访问database.

  • Create的

文件中。在数据库中创建一个表来存储用户帐户,并始终在将其保存到表之前对其密码进行哈希处理。您可以使用此表在用户登录时对其进行身份验证。

  • 当用户登录时,只需在会话中存储一个标志,如其user_id。这足以识别他们是谁,以及他们是否已登录。如果值不在会话中,则它们未登录。PHP
  • 您不需要将所有内容都放在一个

文件中。可以有多个文件。

您可能希望尝试使用Symfony、CodeIgniter或CakePHP等框架,因为它们提供的教程可以帮助您创建安全的应用程序。请记住,安全性不仅仅是密码。正如Kishor所指出的,你还需要担心XSS、SQL注入、CSRF等。一个框架将真正帮助你解决这些问题。

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

https://stackoverflow.com/questions/9965654

复制
相关文章

相似问题

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