Php 在社交网络web应用程序中应该在什么级别实现安全性?

Php 在社交网络web应用程序中应该在什么级别实现安全性?,php,mysql,security,authentication,Php,Mysql,Security,Authentication,我正在用php/mysql开发一个社交网络应用程序,我想听听你的建议,什么是实现安全性的更好方法。我计划这样做:- 在演示级别,我限制用户仅查看他有资格查看的项目/内容以及他有资格查看的权限 & 在数据库级别,无论何时读取/写入或更新我的数据,我都会验证此人是否有权与该部分数据进行此类交互。 因此,对于每个操作,都有两个安全层,一个在视图级别,另一个在数据库级别。 重复检查的开销会很大吗 当然,这只处理内部安全问题。就我建议使用的权限模型而言,因为它考虑了组。(是另一个值得注意的模型,但它没有

我正在用php/mysql开发一个社交网络应用程序,我想听听你的建议,什么是实现安全性的更好方法。我计划这样做:- 在演示级别,我限制用户仅查看他有资格查看的项目/内容以及他有资格查看的权限 & 在数据库级别,无论何时读取/写入或更新我的数据,我都会验证此人是否有权与该部分数据进行此类交互。 因此,对于每个操作,都有两个安全层,一个在视图级别,另一个在数据库级别。 重复检查的开销会很大吗


当然,这只处理内部安全问题。

就我建议使用的权限模型而言,因为它考虑了组。(是另一个值得注意的模型,但它没有组。)


但归根结底,安全性实际上是一个代码质量控制问题。您可以实现最坚固的RBAC,并且可以通过单个XSS/XSRF/SQLi漏洞完全绕过它

谁知道当前用户的情况

如果业务层不知道当前用户是谁,则无法执行任何访问控制。相反,演示文稿每次都必须询问授权组件是否允许特定用户执行特定操作。如果表示层基本上执行一些定义良好的用例,那么这是可以的


如果业务层确实知道当前用户是谁,它可能会在从表示层到业务层的调用中询问授权组件本身。但是,这会引入大量冗余检查。如果表示层在业务层的实体对象上做了很多漂亮的事情,或者在安全性非常重要的时候,这是可以的。

你实际上指的是“权限”-而不是安全性。我同意Mario的观点,安全性不是你仅仅“添加”的东西。对不起,我是新手,因此不是很专业。)看来你有个计划(听起来不错)。但您可以向我们展示您想到的或可能想要实现的权限API。我不明白你所说的权限api到底是什么意思,但如果你指的是权限系统如何工作的确切模型,那么这就是我的计划:表示层将使用用户的身份(userID)确定他有资格与特定内容(contentID)进行多大程度的交互,并仅显示该内容的交互可能性。。。接着是汉克斯。实际上,我正在考虑在演示和业务层进行检查。我认为在表示层进行检查并不能完全解决问题,因为没有资格访问特定内容的用户可能能够访问他看不到正常访问方式的内容,但他知道其中的链接。@Rajkumar Gupta基于URL调用用例是表示的一部分。我所说的区别是:调用用例的控制器是检查授权,还是用例自己执行授权。如果这两项操作中的任何一项都已完成(正确),则用户无法访问未经授权的URL。