我想另一种表达这个问题的方法是你可以使用float
只有0到1之间的小数位数吗?
我试着通过查看MSDN来解决这个问题.其中精度为7位数.我认为这意味着它只能追踪变化0.0000001
.
但是,如果我这样做:
float test = 0.00000000000000000000000000000000000000000001f;
Console.WriteLine(test);
Run Code Online (Sandbox Code Playgroud)
它写出来了 9.949219E-44
如果我再添加零,它将输出0
.
我很确定我在这里遗漏了一些东西,因为这种准确度似乎非常错误.主要是浮动的大小为32位,在该精度级别仅为0-1,包含1e + 44个可能的数字......
OWASP的ZAP的结果对于消除我网站的易受攻击的部分非常有用.
但是,我发现了很多我无法修复的结果.例如,它已将一个get参数放入javascript:alert(1);
变量中.然后,PHP在隐藏元素的value
属性中输出此变量.所以最终的HTML看起来像:
<input type="hidden" name="someName" id="someID" value="javascript:alert(1);"/>
Run Code Online (Sandbox Code Playgroud)
此值通常用于使用JavaScript填充下拉列表.如果它为1则显示可选搜索过滤器,如果为0则不显示任何内容.所以它只用于失败的字符串比较.
我认为没有办法利用它,警报不像ZAP向我展示的其他攻击那样运行.输出被编码,因此它们不能通过"/>
像先前发现的攻击那样提前结束引号或元素来注入HTML ,因为这些字符成为它们的HTML实体对应物.
这只是ZAP匹配页面源中输入字符串的误报,因为编码javascript:alert(1);
仍然等于完全相同javascript:alert(1);
吗?
例如,我有一个基类Entity
,然后是两个派生自此的子类,LightEntity
和PlayerEntity
.
然后List<Entity> Entities
,我有一个持有LightEntity
s和PlayerEntity
s.
我希望得到所有LightEntity
从s Entities
.
我试过了:
List<LightEntity> lights = new List<LightEntity>();
foreach (Entity ent in Entities)
{
if(ent is LightEntity)
{
lights.Add(ent);
}
}
Run Code Online (Sandbox Code Playgroud)
但它并不喜欢这样,因为编译器似乎仍然认为它可能会尝试仅添加Entity
一个列表LightEntity
.
我试图转向ent
,LightEntity
但编译器说它没有将Entity
a 转换为a的方法LightEntity
.
我正在加强我的网站上的安全性,我正在努力确保从PHP传递到HTML的每个值都被正确编码.
目前,为模板分配值将对其进行编码,但网站的某些部分是旧的并且不使用模板.
我改变了我用来输出HTML来编码所有值的函数的工作方式.这适用于覆盖所有旧页面,但现在它会导致模板值的双重编码.
我改变了我用来做的编码功能:
$textToEncode = htmlspecialchars_decode($szText);
return htmlspecialchars($textToEncode, ENT_COMPAT, 'ISO-8859-1');
Run Code Online (Sandbox Code Playgroud)
这可以从我所看到的情况发挥作用.通过首先对其进行解码,它将始终确保它不会进行双重编码,并且我无法想到解码未编码字符串会导致问题的任何原因.这是一个好的解决方案吗?
这是一个理论上的例子,但希望它突出了我的问题:
假设我有一个主Item
对象列表,并且Item
有两个属性,比如说Weight
和Value
.
该程序将经常被要求排序Weight
并获得最轻的,Item
而在其他地方它被分类Value
并获得最昂贵的Item
.
主列表有可能非常大,因此一遍又一遍地对主列表进行排序将是很多不合理的工作.为了节省时间,可以将排序后的结果存储为自己的列表吗?这些其他列表是否只存储指向真实对象的指针,而不仅仅是再次存储它们?
这个链接(以及我检查过的所有其他'保证金与填充'问题),同时提出同样的问题似乎只说明了两者之间的区别.它说,"当你想要外面的空间时,使用边距.当你想要空间内部使用填充".
这很公平但是如果你看看这个快速的jsFiddle示例,我已经使用了各种CSS来获得完全相同的效果.
这个问题是主观的,可能会被关闭但是我浪费了很多时间来决定,"我应该在填充元素上添加填充...或内部元素本身的边距."
如果你扩展这些div有多个段落,那么如果你想拥有一致的边框/背景,第三个例子很快就会失败.在<p>
标签上使用Margin的那个似乎看起来更好,因为它自动分隔段落.
是否有一个简单的思考过程/一组问题我可以问自己在设计我的网站时得出结论?