前端必备的 web 安全知识手记

2024-01-21

前言

安全这种东西就是不发生则已,一发生则惊人。作为前端,平时对这方面的知识没啥研究,最近了解了下,特此沉淀。文章内容包括以下几个典型的 web 安全知识点:XSS、CSRF、点击劫持、SQL 注入和上传问题等(下文以小王代指攻击者),话不多说,我们直接开车????(附带的例子浅显易懂哦????)。

XSS(Cross-site scripting)

XSS 中文叫做跨站脚本攻击。
一句话解释:小王在网页中注入恶意代码,当用户访问页面时,代码会自动运行。
具体点说:凡是在页面中可输入的地方(如地址栏、搜索框和评论区等等)都有隐藏的风险,小王可以在这些地方输入一些特殊的代码(形如 <script>alert(1)</script> ),于是乎本来只是单纯的文本变成了可执行的代码,从而造成了攻击。你可能会觉得 alert(1) 能有多大点事,但把它换成别的威力就不一样了,它可以重定向到一个由小王控制的页面、冒充用户发送请求、窃取用户信息发送到小王的服务器上等等。当然了,这还不够具体,例子才是最直白的????。

举个栗子

因为 XSS 攻击有反射型、存储型和 DOM 型三种类型,所以我们每种都举个简单的栗子????:

反射型

反射型 XSS 主要有以下两个步骤:

  1. 假设我们访问一个 www.a.com/?name=hh 页面,后端会把其中的 name 参数取出来并拼接到 html 中(形如 <p>你好啊,hh</p> )返回给用户。
  2. 这时如果我们访问 www.a.com/?name=hh<script>alert(1)</script> 页面,此时后端会返回形如 <p>你好啊,hh<script>alert(1)</script></p> 这样的一个 html,其中的 script 脚本就会在我们的浏览器上加载执行,从而造成攻击。

你可能会觉得这种 url 看起来就有嫌疑,我们一般不访问,但如果把这个 url 转成一个短网址(所谓短网址就是把 url 转成一个 看起来简约又正常的链接),并在网上散播(通常伴随一些美女图片、外挂和金钱????等一些具有诱惑力的内容),从而骗取用户点击这个 url,造成攻击。所以日常生活中不要乱扫二维码、乱点链接。

当然了,拼接的形式多种多样:

拼接前 拼接字符串 拼接后
<div>#{msg}</div> <script>alert(1)</script> <div><script>alert(1)</script></div>
<img src="#{image}" /> 1" onerror="alert(1) <img src="1" onerror="alert(1)" />
var data = "#{data}" hello";alert(1);" var data = "hello";alert(1);""
存储型

这种类型一般出现在评论区、论坛、留言等类似的地方,基本流程是小王提交了一个恶意评论(就是包含一些恶意代码,和上面类似,形如这样的评论 <img src="1" onerror="alert(1)" /> ),只不过该评论被保存到了数据库中,而评论对大家又都是可见的,所以任何用户访问该页面时,恶意代码就会从数据库中取出,拼接在 html 中返回给用户,页面加载评论的同时也执行了其中的恶意代码。与反射型相比,存储型的辐射范围更加广泛,处理起来也较为麻烦,有时还需要查好多库删好几张表。

DOM 型

典型的例子就是你连接了一个公共 wifi,浏览页面的时候在底部或者四周有时会有一些小广告的出现,因为这种网络劫持会动态修改页面的内容,比如在 html 中追加一些广告或暗链(暗链就是偷偷加入几个 a 标签,一般可用来增加搜索排名),要注意的是这种攻击是不涉及到服务器的,它的核心是动态修改 dom。

小小总结

总的来说就是页面可输入或拼接显示的地方就可能会有潜在的风险。我们演示个小的 demo,虽然实际上不是这样的????,但意思到了: 当我们第一次输入 <script>alert(1)</script> 的时候, alert 不生效是因为 H5 中规定用 innerHTML 插入的 script 将不被执行,但是我们可以写别的,比如 <img src='x' onerror="alert(1)"> ,此时 alert 就被执行了,这个在 MDN 上有明确的说明,这里给大家截图看一下????: 作为前端平时要注意 innerHTML 等一些有字符串拼接并展示的地方。

防御措施

转义和过滤:

一般来可以使用编码或转义的方式来防御 XSS 攻击,就像下面这样:

function escape(str) {
    if (!str) return ''
    str = str.replace(/&/g, '&amp;')
    str = str.replace(/</g, '&lt;')
    str = str.replace(/>/g, '&gt;')
    str = str.replace(/"/g, '&quot;')
    str = str.replace(/'/g, '&#39;')
    return str
} 

对于富文本内容,因为其需要保留 html,所以不好直接使用转义的方法,通常使用白名单过滤(就是允许特定的 html 标签和属性),以抵御 XSS 攻击。当然了更不要相信用户的任何输入,对用户的输入进行特殊字符(如尖括号)的检查也是有必要的。

CSP(Content Security Policy)

这个其实就是设置个响应头信息( Content-Security-Policy ),告诉浏览器哪些资源是可加载执行的(实质就是白名单制度),为对应的内容指定相应的策略。具体设置大家可以查阅 MDN,这里截个 github 的图作为示例: 或者加个 meta 标签:

<meta http-equiv="Content-Security-Policy" content="img-src 'self';"> 
其他
  • HttpOnly:禁止 js 读取 cookie
  • 限制输入内容长度:提高门槛
  • 敏感操作使用验证码

CSRF(Cross-site request forgery)

CSRF 中文叫做跨站请求伪造。 一句话解释:小王盗用你的身份,以你的名义发送恶意请求(发邮件、转账之类的)。

举个栗子

这个没有分类,所以我们直接上栗子????:

  1. 用户登录了 www.a.com,登录态被保存在 cookie 中(这是前提)。
  2. 假设 www.a.com 页面有个转账的功能,形如: https://www.a.com/index.php?money=100&to=xx ,这个请求能够把 100 块转到 xx 同学的账户上。
  3. 小王引诱用户打开了 www.b.com 页面,而这个页面有一个形如 <img src="https://www.a.com/index.php?money=100&to=wo"> 这样的标签,于是浏览器就会自动发起一个转账请求,并且这个请求会携带上 a 网站的 cookie(即便这个标签根本不在 www.a.com 内),所以能请求成功。
  4. 用户并不晓得,这很可怕????。所以有些网站会要求已登录的用户在一些关键步骤时再次输入密码就有一定道理了。

防御措施

CSRF 攻击通常有以下两个特点:

  • 通常发生在第三方网站。
  • 小王并不能获取到 cookie,他只是借用请求,有点借刀杀人的意思。

针对以上两点我们可以有以下几种预防措施:

referer

因为请求头中的 referer 记录了请求的来源地址,referer 会指向 b 网站,所以我们可以对 referer 进行检测,以此来禁止来自第三方网站的请求。 但每个浏览器对于 referer 的具体实现可能有差别,也不能保证浏览器自身没有安全漏洞。在有些情况下,攻击者甚至可以隐藏、修改自己请求的 referer。另外 origin 也是一样的道理(origin 只包含了域名信息,不包括具体的 url 路径)

token

由于 CSRF 是利用了浏览器自动携带 cookie 的特性,所以我们可以多加一个校验的字段(不通过 cookie 传递),简单点说就是:

  1. 登录的时候服务端会返回一个 token 值给前端。
  2. 前端在发送请求的时候再把这个 token 当作请求数据传递或者放在请求头里。
  3. 后端会对这个 token 值进行校验。而由 CSRF 的请求是没有携带 token 的,所以不会成功。

至于 token 是啥,这里简单说明以下,其实它是个字符串,你可以当做个临时 id,一般由 userId、随机数、时间戳通过散列算法得到(形如: let token = md5('userId' + 'time' + 'Math.random() + '...') ,其实就是调用一个函数)。

加验证码

加验证码的本质和 token 是一样的,这两种类型的原理都是在 cookie 之外的某个地方多增加一个字段供后端校验,这里增加的字段就是验证码。这样一来第三方只能携带上 cookie 但是带不上这个验证码字段,也就预防了 csrf 攻击。

SameSite

可以通过设置 SameSite 的值来禁止第三方网站携带 cookie。SameSite 有三个值可以设置:Strict、Lax、None。具体作用如下:

  • Strict:完全禁止第三方 cookie,跨站点时,任何情况下都不会发送 cookie。
  • Lax:大多数情况也是不发送第三方 cookie,但是导航到目标网址的 get 请求除外。Chrome 计划将 Lax 变为默认设置。
  • None:可以显式关闭 SameSite 属性,不过必须同时设置 Secure 属性,因为 cookie 只能通过 https 协议发送),否则无效。 大概这样设置: Set-Cookie: CookieName=CookieValue; SameSite=Strict;

点击劫持

这个比较好理解,我们直接看例子: 其实就是通过覆盖不可见的页面,诱导用户点击而造成的攻击行为。稍微高级一点的伪装可以怎么样呢,就是做成一个游戏界面,让你在页面上狂点,而实际上呢,则会触发一些攻击事件,比如打开摄像头、发送邮件之类的。至于我们为什么会点击,因为骗子通常知道你想要什么????,好奇心也驱使你这样做,并且我们当时并不觉得会有什么危险,所以我们都愿意试试看。

防御措施

禁止内嵌 iframe

让自己的网站不要被目标网站内嵌,可以通过 js 和设置头部 X-Frame-Options 实现:

  1. if (top.location !== window.location) top.location = window.location
  2. setHeader('X-Frame-Options', 'DENY')
验证码

增加攻击成本。

SQL 注入

因为这个和 XSS 有点小像,所以在这里稍微提及一下????。
一句话解释:小王利用潜在的数据库漏洞访问或修改数据。

举个栗子

  1. 用户填写了用户名和密码,点击登录发送了一个请求。
  2. 后端接收到请求并解析参数,将其拼装成一个 SQL 语句执行,形如 select * from user where username = '${data.username}' and pwd='${data.pwd}' ,并返回登录成功。
  3. 结果小王在填写密码的时候写上了 1' or '1'='1 ,结果后端一拼接 SQL 语句就变成了 select * from user where username = 'xiaowang' and pwd = '1' or '1'='1' ,显然这是成立的,也会返回成功。

是不是和 XSS 的拼接漏洞很像呢,本来是数据的东西变成程序执行了。

防御措施

以下内容可跳过,仅作为了解:

  • 不要给出具体的错误信息,越具体越给了小王方向
  • 检查数据类型
  • 对数据进行转义
  • 使用参数化查询:相当于分成两条语句,第一步明确目的,不能再被修改;第二步不管传啥只当作数据处理
  • 使用 ORM(对象关系映射):就是可以不用拼 SQL 语句的意思

上传问题

一句话解释:上传的文件被当做程序解析执行。

举个栗子

  1. 小王上传了一个恶意文件 xx.php,内容如下:
<?php
    phpinfo();
?> 
  1. 如果我们点击该文件的下载链接,就会执行该 php 文件(前提是服务器可以解析 php 文件,并且文件所在目录要有执行的权限)。

防御措施

  • 限制上传后缀 if (ext === 'js') throw new Error('xxx')
  • 文件类型检测 if (file.type !== 'images/png') throw new Error('xxx')
  • 检查文件内容以什么开头
  • 程序输出:就是不运行,有个读写的过程
  • 权限控制:可写可执行互斥原则

DoS 攻击

DoS(Denial of Service)攻击就是利用合理的服务请求来占用过多的服务资源,从而使得合法用户无法得到服务的响应。比如 SYNflood 攻击、IP 欺骗、带宽DoS攻击、塞满服务器的硬盘等攻击手段,这个作为了解就行,具体可自行百度。

其他相关措施

主要都是提高攻击门槛:

  • 明文变换成密文,虽然我们很多密码明文都是一样的,但不同网站的密文一般是不一样的
  • https 传输
  • 频率限制
  • 验证码

总结

没有绝对安全的网站,我们要做的就是提高攻击成本,问题的关键也不在于小王能不能破译,而是值不值得,毕竟付出与收获不成正比,谁愿意倒贴呢?????

解就行,具体可自行百度。

其他相关措施

主要都是提高攻击门槛:

  • 明文变换成密文,虽然我们很多密码明文都是一样的,但不同网站的密文一般是不一样的
  • https 传输
  • 频率限制
  • 验证码

总结

没有绝对安全的网站,我们要做的就是提高攻击成本,问题的关键也不在于小王能不能破译,而是值不值得,毕竟付出与收获不成正比,谁愿意倒贴呢?????

题外话

随着信息技术的快速发展和互联网的普及,IT行业 成为一个非常热门的领域,也是目前就业前景非常广阔的领域之一。

IT行业是一个非常庞大和多样化的行业,包括软件开发、网络安全、数据分析、云计算等等领域。因此,就业前景也是非常广泛和多样化的,不同的领域和职位都具有不同的就业前景和发展机会。

在软件开发领域,由于软件已经成为现代社会不可或缺的一部分,因此对软件开发人才的需求也越来越大。特别是在移动应用、大数据、人工智能等领域,软件开发人才的需求更是迅速增长。因此,软件开发人才的就业前景非常广阔,尤其是那些熟练掌握多种编程语言和技术的人才。

有幸看到一篇这样一组数据。

根据这些我不得总结,it行业确实人才紧缺,

行业发展空间大,岗位非常多

网络安全行业产业以来,随即新增加了几十个网络安全行业岗位︰网络安全专家、网络安全分析师、安全咨询师、网络安全工程师、安全架构师、安全运维工程师、渗透工程师、信息安全管理员、数据安全工程师、网络安全运营工程师、网络安全应急响应工程师、数据鉴定师、网络安全产品经理、网络安全服务工程师、网络安全培训师、网络安全审计员、威胁情报分析工程师、灾难恢复专业人员、实战攻防专业人员…

职业增值潜力大

网络安全专业具有很强的技术特性,尤其是掌握工作中的核心网络架构、安全技术,在职业发展上具有不可替代的竞争优势。

随着个人能力的不断提升,所从事工作的职业价值也会随着自身经验的丰富以及项目运作的成熟,升值空间一路看涨,这也是为什么受大家欢迎的主要原因。

从某种程度来讲,在网络安全领域,跟医生职业一样,越老越吃香,因为技术愈加成熟,自然工作会受到重视,升职加薪则是水到渠成之事。

学习资料分享

当然, 只给予计划不给予学习资料的行为无异于耍流氓 ,### 如果你对网络安全入门感兴趣,那么你点击这里 ????

如果你对网络安全感兴趣,学习资源免费分享,保证100%免费!!!(嘿客入门教程)

????网安(嘿客)全套学习视频????

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

img

????网安(嘿客红蓝对抗)所有方向的学习路线****????

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

img

学习资料工具包

压箱底的好资料,全面地介绍网络安全的基础理论,包括逆向、八层网络防御、汇编语言、白帽子web安全、密码学、网络安全协议等,将基础理论和主流工具的应用实践紧密结合,有利于读者理解各种主流工具背后的实现机制。

在这里插入图片描述

面试题资料

独家渠道收集京东、360、天融信等公司测试题!进大厂指日可待!
在这里插入图片描述

???? 嘿客必备开发工具 ????

工欲善其事必先利其器。学习 客常用的开发软件都在这里了,给大家节省了很多时间。

这份完整版的网络安全( 客)全套学习资料已经上传至CSDN官方,朋友们如果需要点击下方链接 也可扫描下方微信二v码获取网络工程师全套资料 【保证100%免费】

在这里插入图片描述

如果你对网络安全入门感兴趣,那么你点击这里 ????

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

前端必备的 web 安全知识手记 的相关文章

  • 【信道估计】【MIMO】【FBMC】未来移动通信的滤波器组多载波调制方案(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码及文章
  • 【网络安全】Facebook代码执行实现命令执行、敏感信息泄露

    部分网站开设编码练习 若安全配置不当 则代码执行将升级为操作系统命令注入 导致敏感信息泄露 本文仅分享命令执行相关知识 不承担任何由于传播 利用本文所发布内容而造成的任何后果及法律责任 未经许可 不可转载 文章目录 信息泄露 扩大危害 信息
  • 探索Web开发的未来——使用KendoReact服务器组件

    Kendo UI 是带有jQuery Angular React和Vue库的JavaScript UI组件的最终集合 无论选择哪种JavaScript框架 都可以快速构建高性能响应式Web应用程序 通过可自定义的UI组件 Kendo UI可
  • 【ES6】解构语句中的冒号(:)

    在解构赋值语法中 冒号 的作用是为提取的字段指定一个新的变量名 让我们以示例 const billCode code version route query 来说明 billCode code version 表示从 route query
  • 新手也能看懂的【前端自动化测试入门】!

    前言 最近在网上搜索前端自动化测试相关的文档 但是发现网上的文章都是偏使用 没有把一些基础概念说清楚 导致后续一口气遇到一些 karma Jasmine jest Mocha Chai BDD 等词汇的时候很容易一头雾水 这次一方面整理一下
  • tcpdump抓包

    tcpdump抓包 基本概念 1 类型的关键字 host 指明一台主机 如 host 10 1 110 110 net 指明一个网络地址 如 net 10 1 0 0 port 指明端口号 如 port 8090 2 确定方向的关键字 sr
  • 数据加密保障数据安全

    一 目标 1 1 预研需求 数据加密是安全领域中常用的安全措施 它们的主要作用是保护数据的机密性和完整性 以防止未经授权的访问 窃取 篡改或泄漏敏感信息 数据传输加密 保护敏感数据在传输过程中的安全 当数据通过网络传输时 它们可能会经过多个
  • vue实现 marquee(走马灯)

    样式 代码 div class marquee prompt div class list prompt span class prompt item span div div data return listPrompt xxx xxxx
  • 国外拨号VPS指南:开启你的全球网络之旅

    在当今数字化时代 互联网已经成为了我们生活的一部分 而要在全球范围内畅通无阻地访问互联网 拥有一个可靠的国外拨号VPS是非常重要的 无论您是为了工作 学习还是娱乐 国外拨号VPS都可以为您提供更广泛的网络体验 本文将为您提供国外拨号VPS的
  • 你的服务器还安全吗?用户数据是否面临泄露风险?

    一系列严重的网络安全事件引起了广泛关注 多家知名公司的服务器遭到黑客挟持 用户的个人数据和敏感信息面临泄露的风险 这些事件揭示了网络安全的脆弱性和黑客攻击的威胁性 提醒着企业和个人加强对网络安全的重视 一 入侵案例 1 1 蔚来数据泄露 1
  • 考虑光伏出力利用率的电动汽车充电站能量调度策略研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码 数据
  • 内网安全:隧道技术详解

    目录 隧道技术 反向连接技术 反向连接实验所用网络拓扑图及说明 网络说明 防火墙限制说明 实验前提说明 实战一 CS反向连接上线 拿下Win2008 一 使用转发代理上线创建监听器 二 上传后门执行上线 隧道技术 SMB协议 SMB协议介绍
  • 考虑光伏出力利用率的电动汽车充电站能量调度策略研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码 数据
  • 每天10个前端小知识 <Day 14>

    前端面试基础知识题 1 CSSOM树和DOM树是同时解析的吗 浏览器会下载HTML解析页面生成DOM树 遇到CSS标签就开始解析CSS 这个过程不会阻塞 但是如果遇到了JS脚本 此时假如CSSOM还没有构建完 需要等待CSSOM构建完 再去
  • 【安全】原型链污染 - Hackit2018

    目录 准备工作 解题 代码审计 Payload 准备工作 将这道题所需依赖模块都安装好后 运行一下 然后可以试着访问一下 报错是因为里面没内容而已 不影响 准备工作就做好了 解题 代码审计 const express require exp
  • 【js学习之路】遍历数组api之 `filter `和 `map`的区别

    一 前言 数组是我们在项目中经常使用的数据类型 今天我们主要简述作用于遍历数组的api filter 和 map 的区别 二 filter和map的共同点 首先 我们主要阐述一下 filter 和 map 的共同点 api的参数都是回调函数
  • 【安全】简单解析统一身份认证:介绍、原理和实现方法

    深入解析统一身份认证 介绍 原理和实现方法 导语 统一身份认证是什么 统一身份认证的原理 统一身份认证的实现 结语 导语 随着互联网的发展和各种在线服务的普及 用户在不同的应用和平台上需要进行多次身份验证 为了简化用户的登录和减少重复操作
  • Vue中下载不同文件常用的方式

    1 使用window open方法下载文件
  • 【方法】如何把Excel“只读方式”变成可直接编辑?

    Excel在 只读方式 下 编辑后是无法直接保存原文件的 那如何可以直接编辑原文件呢 下面来一起看看看吧 如果Excel设置的是无密码的 只读方式 那在打开Excel后 会出现对话框 提示 是否以只读方式打开 如果想直接编辑文件 选择 否
  • 获取年与年之间的所有年份

    function getYearsBetween startYear endYear var years 存放结果的数组 for var year startYear year lt endYear year years push year

随机推荐

  • 2024年华数杯国际赛A题:放射性废水处理建模 思路模型代码解析

    2024年华数杯国际赛A题 放射性废水处理建模 Radioactive Wastewater from Japan 一 问题描述 2011年3月 日本东海岸发生了地震 引发了福岛第一核电站事故 导致三个核反应堆熔毁 并在一场巨大海啸中冲毁了
  • 38条Web测试经验分享

    1 页面链接检查 每一个链接是否都有对应的页面 并且页面之间切换正确 可以使用一些工具 如LinkBotPro File AIDCS HTML Link Validater Xenu等工具 LinkBotPro不支持中文 中文字符显示为乱码
  • JUC的常见类

    目录 Callable ReentrantLock Semaphore CountDownLatch JUC 即 java util concurrent 其中存放了一些进行多线程编程时有用的类 Callable Callable是一个接口
  • INETRES.dll文件丢失导致程序无法运行问题

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题 如果是新手第一时间会认为是软件或游戏出错了 其实并不是这样 其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库 这时你可以下载这个INETRES
  • 线程安全的集合类

    Java中提供了许多集合类 其中有的是线程安全的 有的是线程不安全的 线程安全的集合类有 1 Vector Vector类实现了一个 动态数组 与ArrayList相似 但Vector是同步访问的 2 Stack Stack是Vector的
  • Selenium小技巧!

    Chrome DevTools 简介 Chrome DevTools 是一组直接内置在基于 Chromium 的浏览器 如 Chrome Opera 和 Microsoft Edge 中的工具 用于帮助开发人员调试和研究网站 借助 Chro
  • ir50_qc.dll文件丢失导致程序无法运行问题

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题 如果是新手第一时间会认为是软件或游戏出错了 其实并不是这样 其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库 这时你可以下载这个ir50 qc
  • SRC漏洞挖掘经验+技巧篇

    一 漏洞挖掘的前期 信息收集 虽然是前期 但是却是我认为最重要的一部分 很多人挖洞的时候说不知道如何入手 其实挖洞就是信息收集 常规owasp top 10 逻辑漏洞 重要的可能就是思路猥琐一点 这些漏洞的测试方法本身不是特别复杂 一般混迹
  • InkEd.dll文件丢失导致程序无法运行问题

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题 如果是新手第一时间会认为是软件或游戏出错了 其实并不是这样 其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库 这时你可以下载这个InkEd d
  • 【信道估计】【MIMO】【FBMC】未来移动通信的滤波器组多载波调制方案(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码及文章
  • 课表排课小程序怎么制作?多少钱?

    在当今的数字化时代 无论是购物 支付 点餐 还是工作 学习 都离不开各种各样的微信小程序 其中 课表排课小程序就是许多教育机构和学校必不可少的工具 那么课表排课小程序怎么制作呢 又需要多少钱呢 制作课表排课小程序并不是一件复杂的事情 只需要
  • IPBusEnumProxy.dll文件丢失导致程序无法运行问题

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题 如果是新手第一时间会认为是软件或游戏出错了 其实并不是这样 其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库 这时你可以下载这个IPBusEn
  • 微信怎么申请小程序商城?一步步教你完成

    随着移动互联网的发展 越来越多的企业和个人开始关注微信小程序 微信小程序是一种不需要下载安装即可使用的应用 它实现了应用 触手可及 的梦想 用户扫一扫或者搜一下就能打开应用 其中 小程序商城因其便捷性和实用性 受到了众多商家的青睐 那么 如
  • ir41_qc.dll文件丢失导致程序无法运行问题

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题 如果是新手第一时间会认为是软件或游戏出错了 其实并不是这样 其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库 这时你可以下载这个ir41 qc
  • inetcomm.dll文件丢失导致程序无法运行问题

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题 如果是新手第一时间会认为是软件或游戏出错了 其实并不是这样 其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库 这时你可以下载这个inetcom
  • iPhone应用商店即将开放,最晚3月7日前!

    iPhone的 侧载 功能马上就要来了 据彭博社马克 古尔曼 Mark Gurman 在最新一期的 Power On 中报道 为了应对欧盟即将实施的 数字市场法案 DMA 苹果正准备在未来几周内将应用商店 一分为二 在欧洲区域开放应用侧载功
  • 关于整型提升与截断的一道题目

    关于整型提升与截断 可以看我的博客 C语言 整型提升 c语言整形提升 CSDN博客 C语言 截断 整型提升 算数转换练习 c语言unsigned CSDN博客 一 题目 二 题解 char a 101截断 由于101是整型数据 需要32比特
  • 『C++成长记』内存管理

    博客主页 小王又困了 系列专栏 C 人之为学 不日近则日退 感谢大家点赞 收藏 评论 目录 一 C C 内存分布 二 内存管理方式 2 1C语言内存管理方式 2 2C 内存管理方式 2 2 1new delete操作内置类型 2 2 1ne
  • 线程安全(中)--彻底搞懂synchronized(从偏向锁到重量级锁)

    接触过线程安全的同学想必都使用过synchronized这个关键字 在java同步代码快中 synchronized的使用方式无非有两个 通过对一个对象进行加锁来实现同步 如下面代码 synchronized lockObject 代码 对
  • 前端必备的 web 安全知识手记

    前言 安全这种东西就是不发生则已 一发生则惊人 作为前端 平时对这方面的知识没啥研究 最近了解了下 特此沉淀 文章内容包括以下几个典型的 web 安全知识点 XSS CSRF 点击劫持 SQL 注入和上传问题等 下文以小王代指攻击者 话不多