security - "declarative security"是什么?一般来说

标签 security

此问题的答案:Declarative Security--what's this? 并没有告诉我太多...坦率地说,根本没有告诉我任何事情。

我看到一篇关于 .NET 性能的博客,其中提到了这一点:

您使用声明式安全性吗?

如果可能,建议您使用声明性安全性而不是命令性安全检查。当前的需求实现为当前正在构建的用于帮助安全审计的安全工具提供了更好的性能和支持。

请注意,如果您的安全检查在方法内是有条件的,则强制安全性是您唯一的选择。

链接:http://weblogs.asp.net/sanjeevagarwal/archive/2009/09/09/net-code-performance-tips-part-1.aspx

“声明性安全”代表什么?谁能举个具体的例子吗?

最佳答案

声明性功能允许程序员在设计时表达意图。这些意图是由语言引擎在内部强制执行的——换句话说,我们看不到它是如何完成的。属性就是一个例子:

[RequireDeletePermission]
public void DeleteFile( string fileName )
{
}

声明指出,如果没有DeletePermission,则无法调用DeleteFile方法。 (这是一个虚构的示例。)运行时将为您强制执行此规则。不需要更多代码。 SQL 权限也属于这一类。

您使用自己的代码强制执行的策略称为强制。您可以使用任何语言机制来完成此操作,但代码本身(而不是内置构造)表达了您的意图。当没有正式约束捕获所需的确切限制时,您将在 SQL 触发器中看到这种情况。

CREATE TRIGGER TR_UPD_fix_image_filename ON products AFTER UPDATE
AS
BEGIN
    UPDATE product SET image=itemnumber + '.jpg' WHERE id IN (SELECT id FROM inserted)
END

(好吧,这是一个愚蠢的例子。根据设计,大多数典型情况都可以通过约束来处理。)

关于security - "declarative security"是什么?一般来说,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1401263/

相关文章:

security - 关于虚拟内存

ruby-on-rails - 批量分配真的是 Homakov 的 GitHub 黑客攻击的罪魁祸首吗?

matlab - MATLAB 编译器的安全性

security - Meebo 等网站如何存储用户名和密码?

php - PHP使用/dev/urandom获取CS随机数的方法

security - 服务器上的密文

使用 PhoneGap 创建移动应用程序时的安全注意事项

ASP.Net模块阻止DOS攻击

security - 哪些浏览器默认阻止第 3 方 cookie?

php - 如何防止 PHP 中的 SQL 注入(inject)?