版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
如何写攻击脚本范文第1篇如何写攻击脚本范文第1篇原子化CSS是一种CSS的架构方式,它倾向于小巧且用途单一的class,并且会以视觉效果进行命名
CSS原子化是一种写法,其特点就是一个类名对应一个样式,从而通过在标签上附加不同的类名来生成对应的效果,可以有效的减少CSS的相关代码,例如
坏处
好处
框架:tailwindcss
TailwindCSS是一个功能类优先的CSS框架,它集成了诸如flex,pt-4,text-center和rotate-90这样的的类,它们能直接在脚本标记语言中组合起来,构建出任何设计.
是不是就是CSS原子类的写法了?当然,tailwindcss不止于此,它还有很多强大的功能和配置
如何写攻击脚本范文第2篇PixiJS是一个2D渲染引擎,很多尤其引擎都采用PixiJS进行渲染
基本流程
创建一个矩形区域,并指定大小
将Canvas舞台添加到DOM
此时PixiJS会自动判断是使用Canvas还是WebGL渲染,默认采用的是WebGL,也可以强制指定使用Canvas模式
向舞台中添加元素
添加一张图片
在PixiJS中图片都被放置在Sprite容器中,加载一张图片之前要先加载Sprite
Pixi使用纹理缓存来存储和引用Sprite所需要的纹理.纹理的名称字符串就是图像的地址.例如使用[“images/”]存储图片,然后使用加载,最后使用(sprite)加载图像
可以定义Sprite的属性
如何写攻击脚本范文第3篇记住,为了完成一次成功得XSS攻击,恶意用户必须找到一种方式在应用程序的输出数据中嵌入他们的某些恶意输入。因此,我们需要识别出应用程序中产生输出的代码。这通常不是一件非常简单的任务,特别对那些大型项目而言,并且有些输出可能确实不必要进行编码。这些情况下,下面的表格可以帮助你处理这些大量数据:
用例场景
场景输入
输入可信?
场景输出
输出中包含不可信的输入?
需要编码?
使用编码方法
Yes/no
Yes/no
Yes/no
为了正确使用该表格,我们首先要知道我们的应用是干嘛的。表格中的一些项我们可以立即填写:
注意:如果你不确信输入是否可信,宁可谨慎一点,假设他们是不可信的。不可信的输入包括:
应用程序级别的全局变量
基于我们的示例项目,这里我们对该表格可以这样填写:
用例场景
场景输入
输入可信?
场景输出
输出中包含不可信的输入?
需要编码?
使用编码方法
用户添加书签
用户名、描述、书签
写入文件的书签实体
应用程序“答谢”用户
用户名称
感谢信息页面
这时,当我们客观地填写了该表格,我们就可以很直观地看出,代码中有哪些是完成输出的:
如何写攻击脚本范文第4篇在该步骤中,我们的目标是确定,是否在上一步筛选的输出中是否包含有任何不可信的用户输入。基于输入和输出场景,现在我们的表格看起来就像如下这样:
用例场景
场景输入
输入可信?
场景输出
输出中包含不可信的输入?
需要编码?
使用编码方法
用户添加书签
用户名、描述、书签
写入文件的书签实体
Yes
应用程序“答谢”用户
用户名称
感谢信息页面
yes
注意:如果你不确定输出中是否包含不确定的输入,保险点,假设他们都是不可信的。
如何写攻击脚本范文第5篇基础数据类型:string,number,boolean,null,undefined,只需要在变量后面使用:type就可以声明类型
其他基础数据类型:
元组:表示一个已知元素数量和类型的数组,各元素的类型不必相同.
当访问一个越界的元素,会使用联合类型替代:
枚举:可以为一组数值赋予友好的名字
默认情况下,从0开始为元素编号.你也可以手动的指定成员的数值.例如,我们将上面的例子改成从1开始编号:
或者,全部都采用手动赋值:
any:不指定
void:表示没有任何类型.当一个函数没有返回值时,你通常会见到其返回值类型是void
null和undefined:undefined和null两者各自有自己的类型分别叫做undefined和null.和void相似,它们的本身的类型用处不是很大:
默认情况下null和undefined是所有类型的子类型.就是说你可以把null和undefined赋值给number类型的变量.
never:类型表示的是那些永不存在的值的类型.例如:never类型是那些总是会抛出异常或根本就不会有返回值的函数表达式或箭头函数表达式的返回值类型;变量也可能是never类型,当它们被永不为真的类型保护所约束时.
never类型是任何类型的子类型,也可以赋值给任何类型;没有类型是never的子类型或可以赋值给never类型(除了never本身之外).即使any也不可以赋值给never.
下面是一些返回never类型的函数:
object表示非原始类型,也就是除number,string,boolean,symbol,null或undefined之外的类型.
使用object类型,就可以更好的表示像这样的API.例如:
对象类型:
使用interface定义一个对象类型
函数类型
JS写法
TS写法:为每一项加入属性
TS写法:整体赋类型
TS写法:通过接口定义
函数重载
使用interface进行重载
报错了,原因是TS将匿名函数推断为了一个(any,any)=>any,与IGetDate不匹配,解决方法是让IGetDate的范围大于匿名函数,修改返回类型为any即可
不预先指定类型
泛型接口
泛型类
泛型别名
泛型约束:希望泛型被限制在一定范围内(extends,表示类型约束)
泛型参数默认类型
类型别名与断言
type可以定义类型别名
类型断言有两种形式.其一是“尖括号”语法:
另一个为as语法:
字符串|数字字面量(值只能选一个)
如何写攻击脚本范文第6篇我们希望让HTML,CSS,JS分别去控制结构,表现,功能.各司其职并不是让他们物理上分类(写成三个文件),而是让他们功能上分离(要不然现在组件化开发岂不是完全违反了原则),例如不要让JS去直接操作CSS样式
举例:请实现一个静态页面的深夜模式
最基础的版本
有问题:通过文字判断状态,使用JS直接操作了一个CSS样式
改一改
定义了该night样式,不用通过文字判断状态了.要是让我写我最多改成()
回头想想:我们在做什么事情?我们在做一个纯视觉效果展示,样式应该是CSS控制的!JS是控制行为的,我们可以尝试纯CSS+HTML实现
要是之和我这么一说,我估计要这么写
很自然的,我把input与label放一起了,然后把在关掉checkbox的样式,但是这不符合语义化要求啊!!!,回头想想,为啥要专门有个label标签呢?为的是让他们永远在一起吗?当然是可以让这两个标签分开啊
人家还可以把这个checkbox给删掉,太他妈牛了.这才是语义化,样式与表现各司其职
我们学到了
如何写攻击脚本范文第7篇永远不要相信用户提交的内容,永远不要将用户提交的内容转化为DOM
其他防御
String转义
SVG扫描(SVG是XML格式的,可以内置)
尽量禁止用户设置自定义跳转链接
尽量禁止用户自定义样式(可以在样式文件里写url(...))
CSP内容安全策略:
CSP通过指定有效域——即浏览器认可的可执行脚本的有效来源——使服务器管理者有能力减少或消除XSS攻击所依赖的载体.一个CSP兼容的浏览器将会仅执行从白名单域获取到的脚本文件,忽略所有的其他脚本(包括内联脚本和HTML的事件处理属性).
如何写攻击脚本范文第8篇发展历程
HTTP/:单行协议
支持GET请求,只能响应HTML文件
HTTP/:构建扩展性
增加Header,增加状态码,支持多文档类型…
HTTP/:标准化协议
链接复用,缓存,内容协商
HTTP/2:更优异的表现
二进制协议,压缩header,服务器推送
HTTP/3:草案阶段
报文结构
Http/
start-line:
请求:方法(POST/GET)HTTP/
响应:HTTP/状态码状态解释
httpheaders
emptyline
body
Http/2
兼容结构
抛弃ASCII编码采用二进制编码
引入帧与流的概念:
帧(frame)
帧:是中数据传输的最小单位.因此帧不仅要细分表达中的各个部分,也优化了表达不好的地方,同时还增加了表达不了的方式.
每一帧都包含几个字段:length,type,flags,streamidentifier,frameplayload等等.
其中type代表帧的类型,在HTTP2的标准中定义了10种类型.
在中,它把数据包的两大部分分成了headerframe和dataframe,也就是头部帧和数据体帧.
流(stream)
流:存在于连接中的一个虚拟通道.流可以承载双向消息,每个流都有一个唯一的整数ID.
长连接中的数据是不按请求响应顺序发送的,一个完整的请求或响应可能会分成非连续多次发送,有以下几个特点:
链接都是永久的,也就是支持多路复用技术,也就是连接上以后不断开,支持多次连接
浏览器可以拒绝服务器大量数据推送
服务器可以主动推送
Http请求方法
常见状态码
详见MDN
RESTfulAPI:一种API设计风格(下面是从中文站上抄来的)
充分的利用HTTP协议的各种功能,是HTTP协议的最佳实践
让软件更加清晰,更简洁,更有层次,可维护性更好
请求设计(请求=动词+宾语)
动词使用五种HTTP方法,对应CRUD操作.
宾语URL应该全部使用名词复数,可以有例外,比如搜索可以使用更加直观的search.
过滤信息(Filtering)如果记录数量很多,API应该提供参数,过滤返回结果.?limit=10指定返回记录的数量?offset=10指定返回记录的开始位置.
API响应设计
举例:设计一个动物园
常见请求头
常见响应头
缓存相关知识
强缓存:只要文件没有过期我就用
协商缓存:用不用缓存需要与服务器沟通决定
浏览器请求流程
ETag与Last-Modified的作用类似,但是由于客户端与服务器时间可能不一样,所以优先使用Etag
Cookie
如何写攻击脚本范文第9篇我们可以利用JS的动态类型的特性通过过程抽象的思想实现一些处理函数的特殊的函数,这些函数可以方便的控制函数执行的一些局部细节,我们一般称这些函数为高阶函数
高阶函数:
高阶函数解决的什么问题
常见高阶函数举例:
实现一个once方法,被他处理过的函数只能执行一次
实现一个节流函数(冷却某个时间才能再次触发)
实现一个防抖函数(函数会在调用延时执行,如果在延时时间内出现二次调用则取消前者执行,重新计时执行后者)
实现一个排队执行函数(可以在任意时间调用函数,但是不会立即执行,函数会按顺序执行,并且固定间隔执行函数,比如打游戏的时候快速按了100次攻击,但是角色只会按照固定的速度去攻击)
实现一个迭代方法使得我们可以批量操作可迭代对象的元素
例如我们想为数组中的元素执行某个方法我们可以写(d=>foo(d))
当我们想为一个可迭代对象实现批量执行时就有点麻烦了,我们可以实现迭代方法函数
如何写攻击脚本范文第10篇常见库
工作流程
建议用封装好的动画库,实在需要自己实现推荐精灵图,或者使用lottie格式文件(是一种指令化的格式,可以在AE中直接导出,只需要在JS中引入文件即可)
动画优化
JS是单线程的,我们需要从减少计算的角度进行优化
性能角度
页面渲染的一般步骤为
最占时间的是重排与绘制,我们希望在requestAnimationFrame的时候尽量避免这两步,也就是说我们希望我们使用@keyframe中的CSS属性尽量不需要这两不就可以实现(例如不要设置display从none到其他值(必然会重排),用translate代替top/left/right/bottom,用scale代替width/height,opacity代替diaplay/visibility),具体那些属性的更新不涉及到这两步见:csstriggers
算法角度
内存缓存youhua
离屏绘制(requestAnimationFrame)
如何写攻击脚本范文第11篇(1)修改服务器访问端口Apache2的默认访问端口为80,由于端口被占用,需要更改其它访问端口进入apache2的安装目录/etc/apache2/,修改文件
(2)删除主页
(3)重启apache服务器即可
(4)访问(ip:端口),在/var/www/html目录下放置文件就可。
如何写攻击脚本范文第12篇CSS动画
CSS是一种样式表语言,用来描述HTML或XML(包括SVG,MathML,XHTML),CSS动画有三种实现模式
通过animation相关内容实现精美动画
使用animation相关API配置动画
使用tramsform移动元素(只能用于盒模型)
使用@keyframesname{}定义动画
举例:倒啤酒动画,
SeethePenCSSBEER!byKairuiLiu(@kairuiliu)onCodePen.
(:actice的时候开始运动)
使用animation中的stepAPI简单精灵动画
举例:跳舞计算器
使用transition实现简单补间动画
SVG动画
SVG是基于XML的矢量图语言,可以与CSS,JS很好的配合,有三种实现方法
SMIL(同步多媒体集成语言):在SVG内部通过特殊标签定义动画(用的不多,兼容性不好,兼容库:polyfill)
JS操作SVG:
常用库:,
使用原生WebAnimation实现
举例:文字溶解
SeethePenSVG文字变形byKairuiLiu(@kairuiliu)onCodePen.
很容易理解,我们就是想变化stroke-dashoffset实现类似蚂蚁线运动的效果,还有一个小问题,stroke-dashoffset的最大值是怎么算出来的呢?使用()获取path长度(还可以使用()获取曲线上某个长度对应的坐标点)见MDN与MDN
有了上面这两个东西我们就很好做了,只需要设置stroke-dashoffset为0->length即可
CSS动画:使用CSS操作SVG元素
JS动画
封装一个JS函数,指定间隔的时候计算播放进度并手动调整animation的播放状态,方便对元素进行大量动画控制
对比
如何写攻击脚本范文第13篇静态资源方案:缓存+CDN+文件名hash(防止缓存期内无法更新)
登录方案:
跨域请求:先发起OPTION请求询问服
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度文化艺术品交易与代理合同
- 2024年度全球市场推广合作合同
- 2024年度产品代理及销售协议
- 2024年度录音制品售后服务合同
- 2024年度大数据中心服务器托管合同
- 2024年度外企在华设立分支机构合同
- 巢湖财务公司注册合同范例
- 2024年度版权转让暨排他性授权合同
- 2024年度广告投放与传媒合作合同
- 牛羊销售合同范例
- 钢结构平台计算书
- 5MWp分布式屋顶光伏电站全套图纸
- 作业许可管理办法
- 设备投放合作协议
- 教师对学生学习情况评价表3页
- 产品结构设计1PPT
- 浅析如何提高长笛的演奏技巧
- 年产8万吨池窑玻璃纤维生产线项目可研报告
- 全国防返贫监测信息系统业务管理子系统操作手册
- 2022年数学广角内容解读及教学思考
- MSDS硅铁安全技术说明书(共4页)
评论
0/150
提交评论