gpt4 book ai didi

c# - 接受匿名方法(Action<>、Func<>)作为参数有哪些安全隐患?

转载 作者:太空狗 更新时间:2023-10-29 21:08:34 26 4
gpt4 key购买 nike

正如标题所说:在 C# 中使用和/或传递匿名方法(Action<>Func<>)时需要考虑的安全隐患是什么?

接受 Action<> 的方法/Func<>似乎是将外部代码注入(inject)程序的潜在方式。作为记录,我知道注入(inject)的方法或函数不能在任意内存访问的意义上做本质上不安全的事情,但我认为它可以允许调用代码调用例如任意 .Net 框架函数、损坏数据或以其他方式导致应用程序行为异常。

这个假设是错误的吗?

如果不是,应该如何锁定它们?此外,有什么方法可以验证
/Func<>传递给方法或函数以确保它具有预期形式或限制其对某些类型和命名空间的访问?

此外,如果我使用的术语不太正确,请原谅我,我还在学习。

最佳答案

A method which accepts Action<>/Func<> seems to be a potential way for foreign code to be injected into a program

那是完全错误的。根据定义,无论谁调用您的函数并传递委托(delegate),都已经在您的程序中运行代码。
任何传递委托(delegate)的代码都可以为所欲为。在同一个 AppDomain 中不能有安全边界。 (旧版本的 .Net 具有代码访问安全性,它试图这样做,但不是一个好主意)

但是,它会产生意外的重入,这会导致线程安全代码出现问题。

关于c# - 接受匿名方法(Action<>、Func<>)作为参数有哪些安全隐患?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27768183/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com