XSS、CSRF、SSRF、暴力破解

2023-11-17

目录

 

1、XSS

1.1、XSS概述

1.1.1、什么是XSS

1.1.2、XSS攻击流程

1.1.3、XSS触发条件

1、标签法

2、伪协议

3、事件

1.2、反射型XSS

Low

Medium

High

1.3、存储型XSS

Low

Medium

High

1.4、Dom型XSS

Low

Medium

High

1.5、XSS的危害和防护

2、CSRF-跨站请求伪造

2.1、CSRF漏洞原理

2.2、CSRF漏洞演示

Low

Medium

High

2.3、CSRF漏洞防御

3、SSRF-服务器端请求伪造

3.1、什么是从SSRF

3.2、SSRF的危害

4、暴力破解

4.1、什么是暴力破解?

4.2、暴力破解流程

4.3、防护措施

靶场DVWA-Brute Force

Low

Medium

High


1、XSS

1.1、XSS概述

1.1.1、什么是XSS

XSS跨站脚本最大的特点就是能注入恶意的HTML/JavaScript代码到用户浏览的网页上,是由于WEB应用程序对用户输入过滤不足而产生的,当用户浏览这些网页时,就会执行其中的恶意代码。

由于HTML代码和客户端JavaScript脚本能在受害者主机上的浏览器任意执行,这等于完全控制了WEB客户端的逻辑,在这个基础上,黑客可以轻易的发起Cookie窃取、会话劫持、钓鱼欺骗等各种各样的攻击。

精简定义,web程序在开发的时候没有对用户的输入进行严格的控制,导致用户的某些非法恶意输入可以在我们的页面上加载外部脚本资源。泄露客户端本地存储的用户敏感信息(尤指cookie)。引发严重的后果。

1.1.2、XSS攻击流程

原理:用户输入的数据被当作前端代码执行

(1)攻击者发送带有XSS恶意的脚本链接给客户(该链接是正常服务器存在注入点的链接,且带着我们注入的内容)

(2)客户点击了恶意链接并访问了正常服务器

(3)服务器将XSS与页面信息返回客户端

(4)客户端解析后请求恶意服务器

(5)攻击者读取用户信息

1.1.3、XSS触发条件

1、标签法

<script></script>

2、伪协议

协议--大众协议,如http,普遍使用的

伪协议--小众协议,weixin://  weishi://,某些公司自己内部使用的协议

JavaScript:

一般用法:<a href=javascript:alter(1)>123</a>

alter()为JavaScript中弹窗函数,如果出现弹窗,则说明js代码被执行。

3、事件

当页面满足某事件,就会触发JS代码

事件就是加在标签里的<img scr=’#’ οnerrοr=aleter(1) />

参考:https://www.runoob.com/jsref/dom-obj-event.html
https://www.w3school.com.cn/jsref/jsref_events.asp

1.2、反射型XSS

攻击流程:攻击者设置圈套,发送脚本进行攻击;受害者浏览恶意网站;恶意代码执行,将当前页面跳转到攻击对象的服务器,在攻击对象网站生成一个Javascript页面然后返回给受害者;Javascript在受害者的浏览器中执行。

关键条件:诱导用户访问链接 --- 一次性

反射型XSS也被称为非持久性XSS,是现在最容易出现的一种XSS漏洞。当用户访问一个带有XSS代码的URL请求时,服务器端接收数据后处理,然后把带有XSS代码的数据发送到浏览器,浏览器解析这段带有XSS代码的数据后,最终造成XSS漏洞。

例子:

<?php

$username = $_GET['username'];

echo $username;

?>

在这段代码中,程序接收username值后再输出,如果提交1.php?username=test,那么程序将输出test,如果攻击者输入username= <script>alert(‘xss’ )</script>,将会造成反射型XSS漏洞。

这表明我们输入的代码被当作前端代码执行

危害:如果某网站存在XSS漏洞,攻击者可以精心设计可以窃取用户Cookie的JS代码。用户点击带有XSS漏洞的URL后,攻击者就拿到了用户的会话Cookie,然后就可以用该用户的身份登录到该网站。

实战演练:DVWA--XSS(Reflected)

Low

我们这里输入什么就会回显什么,尝试输入标签

<script>alert(3)</script>

Medium

尝试输入标签,发现直接输出了

审计源码

发现对<script>标签做了替换,将<script>替换为空,尝试伪协议

<a href = 'javascript:alert(666)'>click</a>

也可以这样

<sc<script>ript>alert(3)</script>

High

 发现正则过滤了<script>标签,尝试事件过滤 

<img src=1 onerror=alert(666)>

1.3、存储型XSS

攻击流程:攻击者向web邮箱客户端等发布带有攻击性的JS代码到攻击对象网站;受害者浏览带有JS攻击脚本的网站;JS脚本在用户浏览器上运行。

存储型XSS又被称为持久性XSS存储型XSS是最危险的一种跨站脚本。允许用户存储数据的WEB应用程序都可能会出现存储型XSS漏洞,当攻击者提交一段XSS代码后,被服务器端接收并存储,当再次访问页面时,这段XSS代码被程序读取响应给浏览器,造成XSS跨站攻击,这就是存储型XSS。

在测试是否存在XSS时,首先要确定输入点与输出点,例如:我们要在留言内容上测试XSS漏洞,首先就要去寻找留言内容输出(显示)的地方是在标签内还是标签属性内,或者在其他地方,如果输出的数据在属性内,那么XSS是不会被执行的。

实战演练:DVWA--XSS(Stored)

Low

发现对name框的输入进行了限长,修改maxlength值

<script>alert(1)</script>

Medium

先做上一关的操作发现并没有进行弹窗,猜测是否对script进行了过滤,替换成空

<sc<script>ript>alert(1)</script>

再尝试大小写绕过

<ScRipt>alert(1)</script>

事件绕过

<img src=1 onerror=alert(666)>

High

直接尝试事件绕过

1.4、Dom型XSS

DOM—based XSS漏洞是基于文档对象模型Document Object Model,DOM)的一种漏洞。DOM是一个与平台、编程语言无关的接口,它允许程序或脚本动态地访问和更新文档内容、结构和样式,处理后的结果能够成为显示页面的一部分。DOM中有很多对象,其中一些是用户可以操纵的,如URL,location,refelTer等。客户端的脚本程序可以通过DOM动态地检查和修改页面内容,它不依赖于提交数据到服务器端,而从客户端获得DOM中的数据在本地执行,如果DOM中的数据没有经过严格确认,就会产生DOM—based XSS漏洞。

DOM就是一个树状的模型,你可以编写Javascript代码根据dom一层一层的节点,去遍历/获取/修改对应的节点,对象,值。通过Js去对网页进行修改,变化执行。

Document对象属性

Document对象使我们可以从脚木中对HTML页面中的所有元素进行访问

常用用Document对象属性
cookle    设置或返回与当前文档有关的所有cookle
domain   返回当前文档的域名
lastModified 返回文档被最后修改的日期和时间
referrer 返回载入当前文档的交档的URL
Title   返回当前文档的标题
URL 返回当前文档的URL
wrlte() 向文档写HTML表达式或JavaScrlpt 代码

Document的存在可以让浏览器获取网贞信息,然后用Js来填充来节约服务器性能

(因为前端代码都在客广浏览器上面执行,和服务器无关)

document.cookie   读取当前网页的Cookie    [xss:必备]

document.lastModified  获得当前页面的最后修改时间    [识别伪静态必备]

document.write   向文档中写文HTML或者Js代码       [Dom xss常见的存在方式]

例如:document.write("<script>alert(1)</script>')

实战演练:DVWA--XSS(DOM)

Low

URL框输入

<script>alert(1)</script>

Medium

查看源码

发现过滤了<scrip,尝试事件绕过

<img src=1 onerror=alert(666)>

查看网页,发现我们输入的语句被输入到value中,并没有插入到option标签的值中。

所以我们需要构造闭合

</option></select><img src=1 onerror=alert(666)>

High

审核源码,发现使用了白名单的想法,只允许选项中的选择。那我们该怎么进行绕过?

我们可以加个锚点#,在url中#后边的内容不会发送到服务端,从而可以实现绕过。

#<script>alert(1)</script>

1.5、XSS的危害和防护

XSS存在的位置:只要是存在用户交互的地方都有可能存在注入攻击。如:留言板、用户注册的时候、上传文件等。像存储型XSS就存在与任何可能插入数据库的地方。

XSS的危害

  1. 网络钓鱼,包括盗取各类用户账号;
  2. 窃取用户cookie资料,从而获取用户隐私信息,或利用用户身份进—一步对网站执行操作;
  3. 劫持用户(浏览器)会话,从而执行任意操作,例如进行非法转账,强制发表日志,发送电子邮件等;
  4. 强制弹出广告页面,刷流量等;
  5. 网页挂马;
  6. 进行恶意操作,例如任意篡改页面信息,删除文章等;
  7. 进行大量的客户端攻击,如DDOS攻击;
  8. 获取客户端信息,例如用户的浏览历史,真实ip,开放端口等;
  9. 控制受害者机器向其他网站发起攻击;
  10. 结合其他漏洞进一步扩大攻击;
  11. 提升用户权限,包括进一步渗透网站;
  12. 传播XSS跨站脚本壖虫等;

XSS的防护

(1)输入验证

  1. 对用户提交的数据进行有效验证,仅接受指定长度范围内,采用适当格式的内容提交,阻止或忽略初次之外的其他任何数据
  2. 输入是否仅仅包含合法的字符
  3. 输入的字符串是否超过最大长度的限制·输入如果为数字,数字是否在指定的范围内
  4. 输入是否符合特定要求,例如:邮箱、电话号码、IP地址等
  5. 输入与输出中的过滤
  6. 黑名单与白名单
  7. WEB安全编码规范
  8. HttpOnlv cookie

总的原则:输入做过滤,输出做转义

输出编码

对输出的数据进行编码,如HTML编码,就是让可能造成危害的信息变成无害

2、CSRF-跨站请求伪造

2.1、CSRF漏洞原理

CSRF跨站请求伪造,是一种对网站的恶意利用。听着与XSS很像,但是他们是不同的。

XSS是利用站点内的信任用户,而CSRF是通过伪装来自受信任用户的请求来利用信任的网站。

可以这么理解CSRF攻击:攻击者盗用了你的身份(即用了你的COOKIE),以你的名义进行某些非法操作。CSRF能够修改你的密码,使用你的账户发送邮件,获取你的敏感信息甚至盗走你的财产等。

一次CSRF攻击的条件:
1、用户登录信任网站A,在本地生成cookie

  1. 在不登出A的情况下,访问恶意网站B
  2. 必须是在同一浏览器,不同浏览器不能相互利用cookie

2.2、CSRF漏洞演示

DVWA-CRSF

Low

输入要修改的密码111,修改成功后,上面出现一串代码

http://127.0.0.1/DVWA/vulnerabilities/csrf/password_new=111&password_conf=111&Change=Change#

此时admin密码为111,且可以在其他网站登录

Medium

和上面一样我们修改密码之后提示密码修改成功,在另一个页面尝试登录

http://127.0.0.1/DVWA/vulnerabilities/csrf/?password_new=111&password_conf=111&Change=Change#

提示Http Referer字段没有定义索引,我们分别对两个页面用burpsuite进行抓包对比

对比发现后面打开的页面少了referer,这样我们可以自己加一个referer字段

然后发送,再次查看密码已经修改成功了

High

随便改一个密码,发现在url的末尾加了token,用户每次访问改密页面时,服务器都会返回一个随机的token,当浏览器向服务器发起请求时,需要提交token参数,而服务器在收到请求时,会优先检查token,只有token正确,才会处理客户端的请求。这里因为对请求的token进行了验证,所以比上两个等级的更加的安全。

2.3、CSRF漏洞防御

1、增加验证码

2、增加Refer字段

3、增加token

关于token与cookie: https://blog.csdn. net/jason121388/article/details/109519266

3、SSRF-服务器端请求伪造

3.1、什么是从SSRF

(1)服务器请求伪造SSRF是指攻击者能够从易受攻击的web应用程序发送精心设计的请求对其他网站进行攻击。

(2)利用一个可发起网络请求的服务来当跳板来攻击其他服务

攻击者能够利用目标帮助攻击者访问其他想要攻击的目标:A让B帮忙访问C

网站B存在SSRF漏洞

攻击者要求网站B为他访问网站C---出现问题时,运维人员查看日志记录,怀疑的是网站B,从而隐藏了真正的攻击者A

模拟SSRF,例如:通过fanyi.baidu.com,访问百度如下图

点击翻译会进行一个跳转,而且域名还是在fanyi里面,只是并不能进行搜索功能,只能查看有的

通过这个网站http://web.yeekit.com/ 再次尝试

会提示安全问题,并不能连接。试试查看127.0.0.1呢,也不行。说明做了过滤

IP绕过小技巧:(1)加@,只访问@后面的内容

(2)利用域名,如localhost指向的就是127.0.0.1

(3)数字IP法,IP可以转换成数字

例如:

 http://www.baidu.com@127.0.0.1/DVWA

https://www.toolnb.com/tools/ipnum.html

SSRF形成原因:服务器端提供了从其他服务器端获取数据的功能,但是没有对内网目标地址做过滤与限制。

3.2、SSRF的危害

假设我现在得到一个SSRF漏洞我可以干什么?

攻击内网服务器(假设内网服务器有存在远程代码执行,那么是不是直接访问一个地址就可以getshell,而且在127.0.0.1访问的时候有些防火墙机制不拦截)如果他内网有机器存在RCE漏洞?是不是就可以直接拿下了?

常利用协议

http://

dict://

file://

案例分享

http://cn-sec.com/archives/3606.html

http://cn-sec.com/archives/8563.html

SSRF可以做什么?

  1. 扫描内部网络( FingerPrint )
  2. 向内部任意主机的任意端口发送精心构造的数据包{Payload}
  3. DOS(请求大文件,始终保持连接Keep-Alive Always )
  4. 暴力穷举(users / dirs / files )

怎么挖掘SSRF?

1.能够对外发起网络请求的地方,就可能存在SSRF同。(POST或GET)

eg:http:/ lexample.com/index.php?page=about.php

2.从远程服务器请求资源。

3.数据库内置功能。(MSSQL)OpenRowset函数操作远程数据库(操作内网的数据库)https: //www.cnblogs.com/yechanglv/p/6923147.html

靶场:pikachu

4、暴力破解

4.1、什么是暴力破解?

Brute Force,即暴力(破解),暴力破解可分为两种,一种是针对性的密码爆破,另外一种是扩展性的密码喷洒。

密码爆破:密码爆破一般很熟悉,即针对单个账号或用户,用密码字典来不断的尝试,直到试出正确的密码,破解出来的时间和密码的复杂度及长度及破解设备有一定的关系。

密码喷洒:密码喷洒和密码爆破相反,也可以叫反向密码爆破,即用指定的一个密码来批量的试取用户,在信息搜集阶段获取了大量的账号信息或者系统的用户,然后以固定的一个密码去不断的尝试这些用户。

本质:连续性尝试+字典+自动化

4.2、暴力破解流程

1.确认目标是否存在暴力破解漏洞

抓包验证,查看目标网站对登录接口是否实施了安全措施。

⒉.优化字典

收集拖库字典;根据实际情况对字典进行优化。一个有效的字典可以大大提高暴力破解的效率。

3.工具自动化

配置线程、超时时间、重试次数等。

4.3、防护措施

1.增加密码复杂度

建议密码包含大小写字母,数据和特殊符号,密码长度不低于八位

2.使用安全的验证码

例如图形验证码

增加对尝试登陆行为进行判断和验证

例如固定时间内登录次数限制

4.采用双因子认证等

例如短信、邮件等等

靶场DVWA-Brute Force

Low

打开随便输入用户名和密码,提示报错

我们抓包看看

这里将intercept里的内容发送到intruder暴力破解模块。send to intruder在intruder的positions选择中,先点击clear$清除所有的变量。然后分别给username和password这两个字段后面的内容添加add$,添加变量并将attack type的值设置为cluster bomb

Choose an attack type 选择攻击类型

然后设置pyload,在load处可添加密码本

  

然后点击右上方start attack,开始破解

发现admin password这里长度不一样,在下面进行查看

所以用户名和密码应该就是他们,发送包,回去用它们登录

Medium

直接和上面一样的操作,虽然时间增加了,但是还是跑出来了,应该是多了一个sleep函数,登录失败就会隔几秒才能再次尝试。

High

抓包可以看到后面多了一个token,然后设置参数,用户名、密码、token

做到这里,后面抓token我没做成功,就自行尝试吧

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

XSS、CSRF、SSRF、暴力破解 的相关文章

  • 将准备好的语句包装在函数中[重复]

    这个问题在这里已经有答案了 我一直在阅读有关 SQL 注入的文章 并决定修改我的代码以防止 SQL 注入 例如 我有一个输入 我将其值插入到数据库中 最初 我对注射的防范是这样的 function test input data data
  • 使用 MVC2 的 AJAX 请求中的 CSRF 保护

    我正在构建的页面很大程度上依赖于 AJAX 基本上 只有一个 页面 并且每次数据传输都是通过 AJAX 处理的 由于浏览器端过度乐观的缓存会导致奇怪的问题 数据未重新加载 因此我必须使用 POST 执行所有请求 也读取 这会强制重新加载 现
  • 如何使用 htmlpurifier 允许传递整个文档,包括 html、head、title、body

    鉴于下面的代码 我如何使用 htmlpurifier 让整个内容通过 我想允许整个 html 文档 但 html head style title body 和 meta 被删除 我什至尝试过 config gt set Core Conv
  • CORS 中的 POST/GET 与 PUT/DELETE

    我刚刚读过this https www w3 org Security wiki Same Origin Policy 同源策略允许使用 GET 和 POST 的跨源 HTTP 请求 方法 但拒绝源间 PUT 和 DELETE 请求 PUT
  • Flask-wtf:在我发布表单之前,csrf_token 已从会话中删除

    我使用 Flask 和 Flask Security 特别是关于我的 csrf 问题的 Flask WTF 来 简化 用户注册 登录的过程 到目前为止并不容易 我在前端使用 BackboneJS 因此我有点破解了使用 Flask WTF 的
  • Symfony 2 - 删除表单和 CSRF 令牌

    我有一个来自数据库的条目列表 我希望在每一行的末尾都有一个 删除按钮 这样用户就不必先转到编辑 显示页面来删除条目 我尝试使用 csrf 令牌创建一个隐藏的输入字段 如下所示 return this gt createFormBuilder
  • 我怎样才能看到csrftoken?

    有没有办法直接在View中获取csrftoken 我想获取当前的 csrftoken 但有时会发生变化 因此从 Cookie 获取它不是一个好主意 有什么办法可以做到这一点吗 Thanks 我相信您正在寻找这个 django middlew
  • AntiForgery.GetTokens:oldCookieToken 参数的用途是什么?

    我们正在使用 Objective C 编写一个 iOS 移动应用程序 用于向我们的 ASP NET MVC 服务器应用程序发送帖子 在 iPhone 上 HTTP 堆栈 和 cookie 等 似乎与 Safari 共享 这使我们容易受到 X
  • 默认情况下,ASP.NET MVC 4 是否需要额外的 XSS 处理

    默认情况下 ASP NET MVC 4 会忽略帖子消息中的 HTML 输入 如果我没有明确接受 HTML 是否需要编写任何代码来保护我的网站免受 XSS 攻击 我不会使用 AllowHtml or ValidateInput false 我
  • 姜戈 - 403 禁止。 CSRF 令牌缺失或不正确

    我尝试为我的模型添加 ModelForm 但每次 POST 尝试都以 403 Forbidden CSRF 验证失败 请求中止 失败原因给出 CSRF 令牌丢失或不正确 结束 我没有 render to response 方法 因此无法通过
  • @csrf_exempt 在 Django 1.4 中停止工作

    我有以下代码 在 Django 1 2 5 中运行良好 from django views decorators csrf import csrf exempt class ApiView object def call self requ
  • 清理 AntiXSS v3 输出中的 html 编码文本(#decimal notation)

    我想在 XSS 安全的博客引擎中发表评论 尝试了很多不同的方法 但发现非常困难 当我显示评论时 我首先使用微软AntiXss 3 0 http www codeplex com AntiXSS对整个内容进行 html 编码 然后我尝试使用白
  • CodeIgniter - 为什么使用 xss_clean

    如果我正在清理我的数据库插入 并且还转义我编写的 HTMLhtmlentities text ENT COMPAT UTF 8 是否还需要使用 xss clean 过滤输入 它还有什么其他好处 xss clean http docs gip
  • https 安全 cookie 是否可以防止 XSS 攻击?

    https 连接是否可以保护 cookie 并防止 XSS 攻击 我有一个简单的博客 允许用户输入 JavaScript 代码作为输入 我希望允许用户输入 Javascript 同时仍然防止 XSS 攻击和 cookie 窃取 https
  • 无法验证 CSRF 令牌的真实性 Rails/React

    我的 Rails 应用程序中有一个 React 组件 我正在尝试使用它fetch 发送一个POST对于我在本地主机上托管的 Rails 应用程序 这给了我错误 ActionController InvalidAuthenticityToke
  • Flask 中“缺少 CSRF 令牌”,但它在模板中呈现

    问题 当我尝试登录 使用 Flask login 时 我得到Bad Request The CSRF session token is missing但令牌正在呈现 在模板中 secret key 已设置 并且我在本地运行localhost
  • 使用 Flask/WTForms 和 React 进行 CSRF 保护

    有没有人成功地为使用 React 作为受控组件 提交到 Flask 后端 最好使用 WTForms 的表单实现了 CSRF 保护 我看过很多部分答案 其中一个是关于 Django 的 但找不到任何关于 Flask 的明确答案 我的大问题似乎
  • PHP中如何有效防止跨站请求伪造(CSRF)

    我正在努力阻止CSRF https www owasp org index php Cross Site Request Forgery CSRF in php questions tagged php通过以下方式 A SESSION to
  • 在 Angular 6 中添加 Xsrf-Token 时出现问题

    通过 API 提交的表单中的数据已成功发布 但是将 X CSRF TOKEN 添加到标头并设置后withCredentials true结果数据未发布到名为的脚本insert php Error 加载失败http localhost sim
  • 保护基于prototype.js的XHR请求免受CSRF攻击

    Django 已经更新到 1 3 事实上从 1 2 5 开始 它就扩展了该方案 将跨站请求伪造保护令牌传递给 XMLHttpRequests Django 人员提供了帮助jQuery 的一个例子 http docs djangoprojec

随机推荐

  • 最熟悉的陌生人:ListView 中的观察者模式

    http blog csdn net u011240877 article details 52683711 RecyclerView 得宠之前 ListView 可以说是我们用的最多的组件 之前一直没有好好看看它的源码 知其然不知其所以然
  • tar分卷压缩解压

    1 使用tar分卷压缩 格式 tar cvzf filedir split d b 50m filename 样例 tar cvzf dir split d b 10m dirname tar gz 将 dir 打包 并切割为 10m 的包
  • python——*和**

    python中 和 的使用分两个方面 一个是计算 另一个是参数传递过程中元素的打包和解包 计算中的运用 和 在python中最常见的作用分别是 相乘 和 乘幂 如下 gt gt gt a 2 gt gt gt b 3 gt gt gt c
  • 20个Android游戏源码,…

    原文地址 分享20个Android游戏源码 希望大家喜欢哈 作者 我算哪根葱 分享20个 Android 游戏源码 希望大家喜欢哈 http www apkbus com android 21834 1 1 html Android 疯狂足
  • 凸优化学习(三)——凸函数

    注意 本文内容来自于吴恩达老师cs229课堂笔记的中文翻译项目 https github com Kivy CN Stanford CS 229 CN 中的凸优化部分的内容进行翻译学习 3 凸函数 凸优化的一个核心要素是凸函数的概念 定义
  • vtm配置以及编码示例

    vtm配置以及编码示例 下载VTM源码 网址 VTM源码 选择对应的版本下载 版本从2 0到最新的版本 1 0版本的VTM需要使用HM的工具svn下载 VTM 1 0源码地址 https jvet hhi fraunhofer de svn
  • STM32F4 IAP 跳转 APP问题

    1 概念 IAP 的作用 网上其他资料已经有很多介绍了 这里放一个链接 不进行深入的介绍 本文的关注重点是Bootloader在跳转APP程序中出现的问题 IAP的实现原理讲解以及中断向量表的偏移 2 程序 本人主要做应用层的开发 所有Bo
  • python--判断奇数偶数

    num int input 输入一个数 if num 2 0 print 0 是偶数 format num else print 0 是奇数 format num 优化 while True try num int input 输入一个整数
  • TS中类型推论、类型别名和never类型

    一 类型推论 TypeScript会在没有明确的指定类型的时候推测出一个类型 这就是类型推论 如果没声明变量 没定义类型 也没赋值 这时候TS会推断成any类型可以进行任何操作 let str str 456 str null 二 类型别名
  • 5分钟 教你搭建个人博客

    链接 https www jianshu com p 4eaddcbe4d12 五分钟倒数已经可以计时了 三步完成免费个人博客搭建 这是一篇小白也能看懂的文章 本文主要针对mac OS Windows 除了软件安装方式和命令有些区别 装了g
  • C++11之初始化列表

    系列文章 C 11之正则表达式 regex match regex search regex replace C 11之线程库 Thread Mutex atomic lock guard 同步 C 11之智能指针 unique ptr s
  • redis部署锦集,redis部署都在这了。

    大数据之Redis Redis各种部署方案和实现 Redis在大数据技术的发展中主要是用来作为中间值存储 快速计算 管道等工具使用 今天先给大家介绍一下关于Redis的部署方案和实现 其原理和应用将会在下一期和大家分享 直接上干货 一 单机
  • 从零起步:学习数据结构的完整路径

    文章目录 1 基础概念和前置知识 2 线性数据结构 3 栈和队列 4 树结构 5 图结构 6 散列表和哈希表 7 高级数据结构 8 复杂性分析和算法设计 9 实践和项目 10 继续学习和深入 11 学习资源 12 练习和实践 欢迎来到数据结
  • 在MDK5中新建STM32F4XX工程模板(基于固件库)

    0 库函数和寄存器的区别 本质上是一样的 可以在库函数模板里面 直接操作寄存器 因为官方库相关头文件有寄存器定义 但是不能在寄存器模板调用库函数 因为没有引入库函数相关定义 了解寄存器基本原理的目的是为了让我们对STM32相关知识有比较深入
  • linux显示指定目录下的所有文件的文件类型和文件名

    linux显示指定目录下的所有文件的文件类型和文件名 并打印普通文件个数 用到的函数 DIR opendir const char name struct dirent readdir DIR dirp int closedir DIR d
  • python 离群值_如何从Numpy数组中删除离群值

    我写了一个代码 取多个图像的平均值来检索背景 这基本上删除了图像中的移动对象 我试着在取平均值之前去掉离群值 这样我就可以得到背景而不是褪色的对象 我尝试了一些技巧 最近的一个是 usr bin env python3 import num
  • lock-linux

    sem unlink sem open pthread getspecific
  • 初识Java——指针

    指针 Pointer 还记得第一次接触指针是在大一的c语言学习中 当时学完之后只知道 就是代表的指针 但是至于其真实含义及用法还没有真正学会 这一次从零开始学习Java 又一次学习到了指针 因此对指针有了更多的认识 下面就是通过最近的学习我
  • python 制作菜单栏的详细教程

    创建一个下拉式菜单 from tkinter import import tkinter messagebox 创建主窗口 win Tk win config bg 87CEEB win title matinal的分析系统 win geo
  • XSS、CSRF、SSRF、暴力破解

    目录 1 XSS 1 1 XSS概述 1 1 1 什么是XSS 1 1 2 XSS攻击流程 1 1 3 XSS触发条件 1 标签法 2 伪协议 3 事件 1 2 反射型XSS Low Medium High 1 3 存储型XSS Low M