尽管我一直反对
用Java用
final
来绘制所有代码
,并且已经接受了在JavaScript中使用
const
的方便,因为它通常会迫使某些纪律成为免费代码,但是有一个潜在的规则可以使我想要到处都有更多的常量。
规则是
一个函数应该返回一些东西
。 通过将所有变量都视为不可变的常量(包括函数的输入),可以在一定程度上执行此操作。 通过这种支持线程安全功能编程的方法,从
结构
上讲,您
不太可能
出现错误。
但是,有一些关于使用
const
或
final
解决此问题的警告。
-
有时,要求一个函数将其结果累加到一个现有的容器中(例如数组或映射)是很合理的,因为使用克隆方法来使一个新的容器返回很麻烦
-
设置引用常量并不能保证不变性,因此您似乎很认真地使用常量关键字,但是仍然违反了一般原则
如果一个函数仅对其一个输入进行操作并返回一个值,则:
相反,如果函数执行各种操作,也许在
一连串的调用中
转发到下一个,则很难理解,调试和测试……可能更难正确。 这样做可能还会
浪费内存
。
尽管有这样的想法,我们可能(偶尔)将一个对象传递给一个函数,以便将值累加到其中。 我们应该研究如何避免修改输入参数。
-
不要重新定义输入参数
–如果您需要对输入为第一个参数的对象进行迭代,请使用迭代来跟踪电流,而不是在循环中重写输入变量
-
不要更改输入内容,
因为这意味着您与呼叫者之间存在反向关系,后者可能天真地认为他们可以重复使用输入内容,但是不能-在某些情况下这是不可避免的,但是这些情况应该清楚地标明并且很少
一般规则是,
这是一个特殊的假设,您可以控制输入对象的状态
。
在最近的示例中,调用函数在列表上使用迭代器,而调用的函数同时接收当前项和迭代器。 该子例程正在从迭代器中删除项目以及使用当前项目。
尽管看起来可行,但我们无法向自己解释该算法为何起作用。
简短,可测试,单一职责,可测试的功能会明智地使用其输入。
翻译自:
https://www.javacodegeeks.com/2020/02/attacking-your-inputs.html
zip炸弹攻击 输入
zip炸弹攻击 输入 尽管我一直反对用Java用final来绘制所有代码 ,并且已经接受了在JavaScript中使用const的方便,因为它通常会迫使某些纪律成为免费代码,但是有一个潜在的规则可以使我想要到处都有更多的常量。 规则是一个函数应该返回一些东西 。 通过将所有变量都视为不可变的常量(包括函数的输入),可以在一定程度上执行此操作。 通过这种支持线程安全功能编程的方法,从结构上讲...
最近看到资料有说到
ZIP
炸弹
,主要在存在上传功能且对上传文件有解压动作的地方,如果校验不严,可能导致压缩
炸弹
,导致消耗CPU导致宕机
1、生成
ZIP
炸弹
:
https://github.com/CreeperKong/
zip
bomb-generator
python
3
zip
bomb.py --mode=quoted_overlap --num-files=250 --compressed-size=21179 > zbsm.
zip
–num-files :压缩包包含的文件数量
–compresse
在文章的开头,让我们先来介绍一下
zip
解压
炸弹
是个 什么妖怪!
解压
炸弹
是指解压缩后能够产生巨大的数据量的可疑压缩文件!默认设置是文件扫描中产生500MB以上解压数据的是“解压
炸弹
”,实时监控中是100MB,邮件监控是30MB。这样的压缩文件解压缩可能对解压程序造成严重负担或崩溃(可能用来
攻击
压缩软件以及占用大量电脑资源,或者杀毒软件的解压缩功能)。解压
炸弹
内,还可能存在病毒,解压中会自启动窃取用户信息
如何制作解压
炸弹
42.
zip
是很有名的
zip
炸弹
。一个42KB的文件,...
本文讲的是
ZIP
炸弹
怎样反击扫描器?,如果你曾经维护一个网站或管理过服务器,那么你会清楚,总会人会尝试
攻击
你。当我在13岁时首次托管我自己的linux服务器时,我每天阅读日志,并查看每天有多少尝试连接到linux服务器(实际上是一个老的ThinkPad T21)的IP(主要来自中国和俄罗斯)。
实际上如果你有一个linux服务器,SSH是开放模式,你...
最近看linux的解压缩,无意间了解到了一个和压缩率相关的小故事——42.
zip
一般我们使用压缩工具的时候,都会用到无损压缩技术,对于无损压缩,
算法
非常重要,不同的
算法
实现
的压缩率和速度有很大差别,主流的
算法
压缩率都在30%-40%之间,而这里要说的42.
zip
,它的压缩率可
以说是相当恐怖了,这里顺便贴上这个文件的下载地址:42.
zip
。
它的原始大小就和它的文件名一样:42kb,但...
在文章的开头,让我们先来介绍一下
zip
解压
炸弹
是个什么妖怪!
解压
炸弹
是指解压缩后能够产生巨大的数据量的可疑压缩文件!默认设置是文件扫描中产生500MB以上解压数据的是“解压
炸弹
”,实时监控中是100MB,邮件监控是30MB。
这样的压缩文件解压缩可能对解压程序造成严重负担或崩溃(可能用来
攻击
压缩软件以及占用大量电脑资源,或者杀毒软件的解压缩功能)。
解压
炸弹
内,还可能存在病毒,...
if=源文件名,如果没有文件内容要求,可指定系统0源文件,制作好的文件内容也会是0。
count=blocks,仅拷贝blocks个数据块,块大小取决于bs或ibs指定的字节数。
bs=bytes,同时设置
输入
/输出的数据块大小是bytes个字节。
of=输出文件名,自己任取。
dd if=/dev/zero count=$((1024\*1024)) bs=4096 of=/home/bombfi
1.
ZIP
炸弹
zip
炸弹
就是一个高压缩比的
zip
文件,它本身可能只有几M或几十M的大小,但是解压缩之后会产生巨大的数据量,会解压到几十G的大小甚至更大,这种
zip
文件会对解压缩的系统造成严重的资源负担,影响目标系统业务甚至达到使系统崩溃的结果。
防范校验,步骤如下:
第一步,校验
ZIP
压缩包大小。
第二步,校验
ZIP
压缩包解压后的大小。
参考文档:
zip
炸弹
和跨目录
zip
文件的构造
2.zi...