我刚刚回答了question我说过,虽然字符串驻留很好,但它可能会成为一个安全问题,因为稍后可以轻松访问字符串值。
虽然我很确定这是真的:-)但我不确定它到底有多容易。我尝试用谷歌搜索这个主题,但没有得到相关结果(谷歌-fu在这方面很弱),所以然后我尝试一下大家。
您知道有什么“简单”的方法来访问应用程序域中感兴趣的字符串列表吗?我必须使用内存转储之类的东西还是有像 AppDomain.GetInteredStringsList() 这样的方法?
与此相关的是:从感兴趣的字符串中获取任何有用的数据真的有多容易。在字符串中存储敏感数据真的是一个安全漏洞吗?
最佳答案
这不是特别容易 - 但它是可行的。
基本上,如果您有任何可以进行内存转储的内容,您可以找到看起来像字符串对象的内存位。 (特别是,它们在开始时都具有相同的“指向类型信息的指针”,因此,如果您有示例字符串,那么您就可以了。)
顺便说一句,这与实习字符串没有什么关系。它不像所有字符串都被保留 - 只有字符串常量和用户显式保留的字符串。
关于.net - 访问 clr 的内部字符串列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/388822/