在C++世界中,存在多种方法来制造可利用的漏洞:缓冲区溢出,不安全的sting处理,各种算术技巧,printf问题,不以'\ 0'结尾的字符串等等.尽管java中解决了大多数这些问题,但仍有一些事情需要讨论.但是,是否有任何典型的C#特定编码漏洞列表?(与.NET平台本身无关)
以下是您可能遇到的一些问题:
如果你有任何类型的语言解释器(HTML,JavaScript和SQL是三大),那么你仍然可以有注入或XSS漏洞.
P/Invoke可能会导致问题,尤其是在您进行任何自定义编组时.即使您通过P/Invoke调用"安全"API,您的编组代码也可能包含破坏或暴露内存的错误.
如果您正在进行文件访问,那么您需要确保您的文件始终位于可接受的目录中.一定要消除糟糕的绝对和相对路径.
加密.好的加密编程真的很难,而.Net的各种安全功能对加密攻击没有任何作用.
C#基于.NET,.NET应该是类型安全的,这意味着你的恐怖列表都不适用于C#或任何.NET语言.
但话说回来,C#有一个unsafe
关键字,之后所有的赌注都没有了.
它允许真正的指针和它们附带的一切.