防止pdf执行xss注入漏洞
chrome内核的浏览器和火狐浏览器均可通过pdf内置javaScript脚本进行xss攻击,这是由于pdf本身支持携带js脚本,且浏览器解析时自动解析js脚本所致,
处理方法:
方法1:还可以加上在线预览改为强制下载。
方法2:禁止上传带有js脚本的pdf文件(本文采用)
View DetailsTypeScript 声明文件
TypeScript 作为 JavaScript 的超集,在开发过程中不可避免要引用其他第三方的 JavaScript 的库。虽然通过直接引用可以调用库的类和方法,但是却无法使用TypeScript 诸如类型检查等特性功能。为了解决这个问题,需要将这些库里的函数和方法体去掉后只保留导出类型声明,而产生了一个描述 JavaScript 库和模块信息的声明文件。通过引用这个声明文件,就可以借用 TypeScript 的各种特性来使用库文件了。
View DetailsTypeScript 模块
TypeScript 模块的设计理念是可以更换的组织代码。
模块是在其自身的作用域里执行,并不是在全局作用域,这意味着定义在模块里面的变量、函数和类等在模块外部是不可见的,除非明确地使用 export 导出它们。类似地,我们必须通过 import 导入其他模块导出的变量、函数、类等。
两个模块之间的关系是通过在文件级别上使用 import 和 export 建立的。
模块使用模块加载器去导入其它的模块。 在运行时,模块加载器的作用是在执行此模块代码前去查找并执行这个模块的所有依赖。 大家最熟知的JavaScript模块加载器是服务于 Node.js 的 CommonJS 和服务于 Web 应用的 Require.js。
此外还有有 SystemJs 和 Webpack。
View DetailsTypeScript 命名空间
命名空间一个最明确的目的就是解决重名问题。
假设这样一种情况,当一个班上有两个名叫小明的学生时,为了明确区分它们,我们在使用名字之外,不得不使用一些额外的信息,比如他们的姓(王小明,李小明),或者他们父母的名字等等。
命名空间定义了标识符的可见范围,一个标识符可在多个命名空间中定义,它在不同命名空间中的含义是互不相干的。这样,在一个新的命名空间中可定义任何标识符,它们不会与任何已有的标识符发生冲突,因为已有的定义都处于其他命名空间中。
View DetailsTypeScript 泛型
泛型(Generics)是一种编程语言特性,允许在定义函数、类、接口等时使用占位符来表示类型,而不是具体的类型。
泛型是一种在编写可重用、灵活且类型安全的代码时非常有用的功能。
使用泛型的主要目的是为了处理不特定类型的数据,使得代码可以适用于多种数据类型而不失去类型检查。
View DetailsTypeScript 类
TypeScript 是面向对象的 JavaScript。
类描述了所创建的对象共同的属性和方法。
TypeScript 支持面向对象的所有特性,比如 类、接口等。
英文中的符号与发音
符号 中文(数学) 英文(数学) 发音 ` 反引号 backtick, backquote /bakˈtik/ ~ 波浪号 tilde /ˈtɪldə/ ! 叹号(阶乘) exclamation mark(factorial) /ˌekskləˈmeɪʃn/(/fæk’tɔːrɪəl/) @ 艾特,at at – # 井号 sharp, number, hash, hashtag, pound, octothorpe /ˈɒktə(ʊ)θɔːp/ $ 美元符 dollar – % 百分号(取模) percent(mod) – ^ 折音号,脱字号 circumflex, caret /ˈsɜːkəmfleks/, /‘kærət/ & and and – * 星号 star, asterisk /ˈæstərɪsk/ ( 左圆括号 left parentheses, open parentheses /pəˈrenθəsiːz/ ) 右圆括号 right parentheses, close parentheses /pəˈrenθəsiːz/ – 连字符,横杠(减号) hyphen, dash(minus) /ˈhaɪfn/, /dæʃ/(/‘maɪnəs/) _ 下划线 underscore, underline /ʌndə’skɔː/ + 加号 plus – = 等号 equal sign – […]
View DetailsTypeScript 接口
接口是一系列抽象方法的声明,是一些方法特征的集合,这些方法都应该是抽象的,需要由具体的类去实现,然后第三方就可以通过这组抽象方法调用,让具体的类执行具体的方法。
View Details