社交和分享网站如何Facebook 和 Google+ 在代码中处理安全策略?
How does social and sharing websites e.g. Facebook and Google+ handle security policies in code?
我听说大多数网站都使用临时安全措施。
如何在代码中指定和执行安全策略?
例如,只有鲍勃的朋友可以看到他的电子邮件地址。
如果政策交织在整个代码中,他们如何管理它,因为它很容易出错。
我已经开始为网络应用程序开发一个信息流控制包,只是好奇大公司使用什么?
注意:此问题最适合 Security Stack Exchange 网站。
一般来说,软件开发公司 - 不仅仅是网站 - 使用代码(Java、C#...你的名字)开发自己的授权逻辑。
有一些公司/团队已经将他们的业务逻辑与其授权逻辑分离。这样做称为 外部化授权。与之相关的字段称为 externalized authorization.
外部化授权有几个好处:
- 将业务逻辑与授权逻辑分离
- 更容易分别维护任一代码库
- 更容易审核
- 中心化逻辑
- ...
有几种方法可以实现外化授权。以下是一些示例:
- Spring 安全性 (Java) 为您提供了一种使用角色和注释表达授权逻辑的方法
- .Net 中基于声明的授权
- CanCan 和 CanCanCan 在 Ruby
- Python
中的烧瓶
所有这些方法都特定于一种给定的语言。一些例如CanCan 是基于策略的。其他人使用基于角色的方法。
理想情况下,所有公司和网站都将使用基于政策的技术中立方法。实际上围绕这样的 'thing' 有一个标准。它被称为ABAC(基于属性的访问控制),它使用用XACML编写的策略来表达访问控制逻辑。
很酷的是,您可以主要在 Facebook、Yahoo 等网站上重复使用这些政策...
我听说大多数网站都使用临时安全措施。 如何在代码中指定和执行安全策略? 例如,只有鲍勃的朋友可以看到他的电子邮件地址。 如果政策交织在整个代码中,他们如何管理它,因为它很容易出错。 我已经开始为网络应用程序开发一个信息流控制包,只是好奇大公司使用什么?
注意:此问题最适合 Security Stack Exchange 网站。
一般来说,软件开发公司 - 不仅仅是网站 - 使用代码(Java、C#...你的名字)开发自己的授权逻辑。
有一些公司/团队已经将他们的业务逻辑与其授权逻辑分离。这样做称为 外部化授权。与之相关的字段称为 externalized authorization.
外部化授权有几个好处:
- 将业务逻辑与授权逻辑分离
- 更容易分别维护任一代码库
- 更容易审核
- 中心化逻辑
- ...
有几种方法可以实现外化授权。以下是一些示例:
- Spring 安全性 (Java) 为您提供了一种使用角色和注释表达授权逻辑的方法
- .Net 中基于声明的授权
- CanCan 和 CanCanCan 在 Ruby
- Python 中的烧瓶
所有这些方法都特定于一种给定的语言。一些例如CanCan 是基于策略的。其他人使用基于角色的方法。
理想情况下,所有公司和网站都将使用基于政策的技术中立方法。实际上围绕这样的 'thing' 有一个标准。它被称为ABAC(基于属性的访问控制),它使用用XACML编写的策略来表达访问控制逻辑。
很酷的是,您可以主要在 Facebook、Yahoo 等网站上重复使用这些政策...