7
|
Erik Philips Gabriel Costa · 技术社区 · 14 年前 |
![]() |
1
4
如果您只是加载XAML而不采取任何预防措施,则有两个潜在问题:
解决方案有两个方面:
限制可以实例化的类
注意:内置的XamlReader不允许您提供自定义的IXamlTypeResolver。我使用了我编写的一个增强的XamlReader,它允许自定义的IXamlTypeResolver,因此我实际上可以在加载时和运行时检测XAML中引用的每一种类型,而无需进行任何解析:只是无法解析任何不在白名单上的类型。 限制Uri属性的设置 XAML的刚性结构再一次帮助了我们。它可以很容易地被扫描以确定将被调用的每个属性设置器以及要设置的值或绑定(不要忘记样式和附加属性)。如果使用包Uri以外的任何绝对Uri,则可以拒绝XAML。使用标记扩展设置Uri的尝试也会被拒绝。 |
![]() |
Kryptonit364 · 在DataGrid中隐藏调整大小和选择列 2 年前 |
![]() |
hassan Ma · 从顶部将文本插入WPF文本块 2 年前 |
![]() |
Arijit · 移动画布内绘制的矩形 2 年前 |
![]() |
juraj14466 · C#WPF实时图表将点渲染为图像 2 年前 |