我正在开发php / mysql中的社交网络应用程序,我想听听你对什么是更好的实现安全性的方法的建议。我正在计划这样的事情: - 在演示层面,我限制用户只看到他有资格看到他有资格获得的权利的项目/内容。在数据库级别,每当我的数据被读/写或更新时,我都会验证该人是否有权与这部分数据进行此类交互。因此,对于每个动作,在视图级别有两层安全性。另一个在数据库级别。双重检查是否需要很多开销?
当然只处理内部安全问题..
答案 0 :(得分:1)
我想说任何需要一点安全性的应用程序都必须这样做。
我们有几个应用程序以类似的方式工作。我们在应用程序和数据库级别测试授权。其中的好处是,我们可以使用相同的数据存储区,并使用完全相同的安全模型,从而拥有多个松散相关的应用程序。
另一个好处是,在应用程序是pwnd的情况下,破坏数据库要困难得多。
沿着这些方向,我们甚至不允许应用程序直接操作表(选择/删除/等)。相反,一切都通过存储过程。所有proc都采用userid(不可猜测)并在内部验证允许用户执行所请求的功能。如果不是,我们会默默地失败。另一个好处是我们不受sql注入的影响。
除了允许数据库自包含并强制执行它自己的授权检查之外,即使它们能够获得有效的超级用户帐户,也会花费大量的时间来进行大量的损坏。鉴于我们积极监控数据库和应用程序的使用情况,我们有能力检测并阻止正在进行的攻击,从而限制任何暴露。
请记住,如果他们不是为了得到你,那只会是偏执狂。他们几乎总是。 ;)
答案 1 :(得分:0)
这听起来像处理这种情况的好方法,但为什么用户需要拥有这么多不同级别的资格,你不能将它们限制在他们帐户中的信息。