当前位置: 首页 > news >正文

做网站运营需要培训吗新品推广计划与方案

做网站运营需要培训吗,新品推广计划与方案,怎么帮人做网站,三星智能手表网站安全测试理论 什么是安全测试? 安全测试:发现系统安全隐患的过程安全测试与传统测试区别 传统测试:发现bug为目的 安全测试:发现系统安全隐患什么是渗透测试 渗透测试:已成功入侵系统为目标的的攻击过程渗透测试与安全…

安全测试理论

  • 什么是安全测试?

    安全测试:发现系统安全隐患的过程
    
  • 安全测试与传统测试区别

    传统测试:发现bug为目的
    安全测试:发现系统安全隐患
    
  • 什么是渗透测试

    渗透测试:已成功入侵系统为目标的的攻击过程
    
  • 渗透测试与安全测测似区别

    渗透测试:攻击
    安全测试:防护
    
  • 如何进行安全测试(安全测试常用方法)

    1、代码走读:检查代码是否有安全隐患
    2、动态渗透
    3、扫描程序缓存问题
    
  • 安全测试方面(维度)

image-20240708085105455

客户端安全

  • 常见分类

    XSS:跨站脚本攻击
    CSRF:跨站请求伪造
    

XSS

  • 什么是XSS

    跨站脚本(cross site script)为了避免与前端css混淆,改名为xss

    攻击者通过改变前端页面元素请求地址或注入JS,来获取非法数据(cookie)。
    
  • XSS攻击原理

image-20240709083833760

  • XSS可用攻击页面标签

    image-20240709083942138

  • 攻击方式分类

    • 存储型:将攻击代码存储到数据库,每次打开指定的页面自动加载执行。

      场景:留言板、注册
      
    • 反射性:临时修改页面代码,用户打开页面中招。

      场景:图片、连接
      
  • XSS攻击步骤

  • 核心:查找是否有XSS漏洞

    执行:<script>alert(123)</script>,证明可以执行JS或没有对<进行过滤。
    
  • 目的:盗取敏感数据,如cookie

  • XSS防护策略

    • 将cookie设置只读(HttpOnly)
    • 输入控制:禁止输入特殊符号(</>'等)
    • 输出控制:过滤或转义特殊符号的输出
  • 总结

    • XSS安全测试解决什么问题?

      避免客户端被注入恶意JS程序或修改标签链接地址,导致数据丢失或访问黑客网站
      
    • XSS测试人员使用的步骤

      1、验证码页面是否屏蔽了JS的注入
      2、如果存在JS注入,提醒开发防护策略
      

CSRF(跨站攻击)

  • 什么是CSRF
CSRF(Cross-site request forgery)是指跨站请求伪造攻击
  • 目的

image-20240709090756086

  • 原理

image-20240709090829295

  • 攻击操作步骤
1、获取删除或修改网站数据的接口
2、在黑客网站上生成一个删除或修改链接(领取优惠券)
3、黑客在要攻击的网站上生成一个跳转到黑客网站的链接(优惠活动)
4、用户在黑客网站上领取优惠券
  • 测试CSRF步骤
检查项目是否对请求头->HTTP Referer做校验。后台判断是操作请求来源只能是自己的网站。
  • 防御

image-20240709222528072

HTTP Referer:请求头来源的显示,从哪个点击链接访问,会记录链接访问的地址。

网络安全

协议加密
数据加密
数据签名
DOS攻击
  • 协议加密:常用HTTPS协议(基于HTTP协议之上进行加密传输和证书策略)
1、数据完整性
2、数据保密性
3、安全校验
  • 数据加密
数据加密:md5/AES/DES/自定义
  • 数据签名
特点:对请求数据生成一个无法伪造的字符串,发送给服务器。

image-20240709222913702

  • Dos攻击

image-20240709222936183

目的:让目标计算机或网络无法提供正常的服务或资源访问,使目标系统停止响应甚至崩溃。

image-20240709223042073

防御:
1、请求添加访问时间戳,服务器进行判断是否在有效期内,如果在处理,否则不处理。
2、指定时间内控制请求参数(百度->1秒之内3次)
3、流量限制(验证码->越模糊越好)

用户安全策略

密码登录:①:session②:token
其他登录
  • 密码

image-20240710083713939

提示:
1、密码纯6位数字,有10**6
2、密码纯8位数字,有10**8
  • session

    • 说明:密码登录成功后,服务器可以生成session|token|cookie等认证方式来进行后续认证处理。
    • 特点:session:一次会话(会话结束session关闭)
    • 危害:如果在session会话有效期内,session被盗取,那么后果是很可怕的(相当于账号密码泄露)
    • 防护策略:
      • 在一定时间后后台关闭session
      • 相同用户只能生成1个对象
      • 当用户客户端发生变化(浏览器、ip发生改变)时,要求用户重新登录
      • 养成好的习惯,用户退出后,及时清除session信息

其他登录策略

  • 多因素策略

image-20240710084744870

提示:多因素策略一般根据项目类型来定

暴力破解

  • 说明:理论来说,是密码就一定可以通过多次尝试来进行破译,这种称为暴力破解。
  • 提示:暴力破解一般使用密码字典结合自动化程序来实施。
  • 防护:

image-20240710085033915

权限安全漏洞

  • 危害:容易出现越权操作(查看别人信息、删除他人的信息、查看核心数据)

  • 分类

image-20240712081548715

提示:权限漏洞主要验证垂直权限(基于用户角色设置权限),水平权限暂时无法验证
  • 越权示例:
张三删除李四的留言信息
  • 防护
服务端在执行操作之前,需要验证权限。

应用服务器安全

  • 安全漏洞分类
1、SQL注入(项目数据库)
2、文件上传(针对应用服务器代码)

SQL注入

  • 说明:sql注入,顾名思义就是通过页面输入sql语句,达到特定的目的
  • 危害:数据库丢失,意味攻击者可以用任何人的账号进行违规操作
  • 原理:

image-20240712082751831

  • 攻击步骤
1、在页面输入框中查找注入点
2、注入sql语句
3、通过sql语句获取项目库名、表名、字段名
4、通过Mysql数据库自己的库,获取项目库中所有的表、字段、数据
  • 安全测试(sql注入),查找注入点
1、方式1:手动,在输入框中输入',看提示信息。如果提示相关sql报错信息且是语句拼接方式,说明可以sql注入
2、方式2:使用专业的工具进行扫描
  • sql注入防护
1、对用户的输入数据进行校验
2、不要动态拼接SQL,使用参数化语句
3、不要使用管理员权限的数据库连接,为每个应用使用单独的权限进行数据库连接
4、不要把敏感数据直接保存到数据库中
5、应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装。

应用服务器(文件上传漏洞)

  • 危害: 获取正向web项目的目录和文件(源代码暴露)
  • 原理:
    • 1、利用上传功能,上传恶意文件
    • 2、执行恶意文件
    • 3、获取项目源代码
  • 防护:

image-20240712083924527

数据库安全

  • 安全防护策略
数据库备份和恢复
敏感数据加密
审计追踪机制
认证和权限控制
  • 数据备份和恢复
数据库必须有备份,正常1天1个备份
  • 敏感数据加密
用户数据在传输和存储过程都需要进行加密
  • 审计追踪机制
对数据库操作,尤其是(删除、修改、新增)操作,必须有日志记录
  • 认证和权限控制
不能给root权限
文件操作必须有权限控制

接口加解密

  • 加解密说明

image-20240713171205814

  • 思考?如果要对加解密怎么做?
1、找开发拷贝加密和解密工作
2、确定工具如何使用(如何加密、如何解密)
3、明确请求示例(请求参数格式及使用)

接口-案例

  • 案例
接口说明:登录接口
请求方法:POST
请求参数类型:form
url:"http://mobile-p2p-test.itheima.net/phone/member/login"
请求参数
data={
"member_name":"13012345678",
"password":"test123"
}
  • 未加密解密
import requests
url="http://mobile-p2p-test.itheima.net/phone/member/login"
data={"member_name":"13012345678","password":"test123"
}
result=requests.post(url,data=data)
print(result.json())

image-20240713173342338

加解密应用示例

  • 步骤
1、找开发拷贝加密和解密工作
2、确定工具如何使用(如何加密、如何解密)
3、明确请求示例(请求参数格式及使用)
  • 1、加解密工具

image-20240713173718648

  • 2、确定工具如何使用

image-20240713173748732

  • 3、明确请求示例

image-20240713173812512

  • 加解密应用示例:
import requests
from EncryptUtil import EncryptUtil
url="http://mobile-p2p-test.itheima.net/phone/member/login"
data={"member_name":"13012345678","password":"test123"
}
# 1、对请求参数进行加密
diyou =EncryptUtil.get_diyou(data)
# 2、对加密后的数据进行签名
xmdy = EncryptUtil.get_xmdy(diyou)
# 3、调用请求 参数格式("xmdy":"签名","diyou":"加密后的数据")
result=requests.post(url,data={"xmdy":xmdy,"diyou":diyou})
# 4、响应数据解密
diyou =result.json().get("diyou")
print("--" * 50)
print("解密后的数据",EncryptUtil.aes_decrypt(diyou))
  • EncryptUtil.py
import base64
import hashlib
import json
import refrom Crypto.Cipher import AES# 加解密工具类
class EncryptUtil:# 发送请求时,加密密码SEND_AES_KEY = ";3jm$>/p-ED^cVz_j~.KV&V)k9jn,UAH"# 发送请求时,签名密钥SEND_SIGN_KEY = "DY34fdgsWET@#$%wg#@4fgd345sg"# 接收数据时,解密密钥RECEIVE_AES_KEY = "54Ms5bkE6UEdyrRviJ0![OR]g+i79x]k"@staticmethoddef padding_pkcs5(value):BS = AES.block_sizereturn str.encode(value + (BS - len(value) % BS) * chr(BS - len(value) % BS))# 替换空字符@staticmethoddef replace_blank(str_data):str_data = re.compile("\t|\r|\n").sub("", str_data)print("replace_blank str_data=", str_data)return str_data@staticmethoddef aes_encrypt(key, data):"""AES加密:param key: 密钥:param data: 待加密数据:return: 加密后数据"""data = base64.encodebytes(data.encode()).decode()# 替换特殊字符data = EncryptUtil.replace_blank(data)print("data=", data)# 初始化加密器aes = AES.new(key.encode(), AES.MODE_ECB)# 加密padding_value = EncryptUtil.padding_pkcs5(data)encrypt_aes = aes.encrypt(padding_value)# 用base64转成字符串形式encrypted_text = base64.encodebytes(encrypt_aes).decode()return encrypted_text@staticmethoddef aes_decrypt(key, data):"""AES解密:param key: 密钥:param data: 待解密数据:return: 解密后数据"""# 初始化加密器aes = AES.new(key.encode(), AES.MODE_ECB)# 优先逆向解密base64成bytesbase64_decrypted = base64.decodebytes(data.encode())# 执行解密decrypted_bytes = base64.decodebytes(aes.decrypt(base64_decrypted))# 转换为字符串decrypted_text = str(decrypted_bytes, encoding="utf-8")# 把Unicode转成中文result = decrypted_text.encode().decode("unicode_escape")return result@staticmethoddef md5value(data):print("md5value data=", data)md5 = hashlib.md5()md5.update(data.encode())return md5.hexdigest()# 加密调用@staticmethoddef get_diyou(data):# 把字典转换为JSON字符串if isinstance(data, dict):data = json.dumps(data)aes_encrypt_data = EncryptUtil.aes_encrypt(EncryptUtil.SEND_AES_KEY, data)return EncryptUtil.replace_blank(aes_encrypt_data)# 签名调用@staticmethoddef get_xmdy(data):return EncryptUtil.md5value(EncryptUtil.SEND_SIGN_KEY + EncryptUtil.replace_blank(data) + EncryptUtil.SEND_SIGN_KEY)# 解密调用@staticmethoddef decrypt_data(data):return EncryptUtil.aes_decrypt(EncryptUtil.RECEIVE_AES_KEY, data)if __name__ == '__main__':# 加密send_data = {}content = json.dumps(send_data)diyou = EncryptUtil.get_diyou(content)print("diyou=", diyou)xmdy = EncryptUtil.get_xmdy(diyou)print("xmdy=", xmdy)

加密解密标准

  • 说明:加密标准常用美国联邦政府高级密码标准(AES)
  • 安装:
pip install pycryptodome==3.9.6 -i https://pypi.douban.com/simple
  • 提示:拿到工具如果报错提示缺少库,需要跟开发确定安装的依赖库。

    image-20240713175555799

http://www.tj-hxxt.cn/news/107748.html

相关文章:

  • 网站建设发票的税点爱情链接
  • 北京最新楼盘排行榜seo刷词工具在线
  • 一个网站做网站地图的目的电话营销外包公司
  • 北京网站搜索引擎优化推广贵阳网站优化公司
  • 荆州网站建设百度爱采购优化
  • 网站缺点seo网站诊断报告
  • 重庆好的推广网站国际军事新闻
  • 如何做外卖网站app发布推广信息的网站
  • 做网站工资竞价关键词优化软件
  • 专业做网站较好的公司广州企业营销型网站有哪些
  • wordpress个人外链北京谷歌优化
  • 怎么在360网站做词条流量查询网站
  • wordpress 自动摘要网络优化工程师证书
  • java开发兼职网站开发市场营销案例分析
  • 网站搜索引擎优化情况怎么写企业官方网站推广
  • 阿里云网站域名备案杭州网站优化平台
  • ftp怎么上传文件到网站湖南正规seo优化报价
  • 怎么做b2b网站吗网店运营培训哪里好
  • 做视频网站利润如何网络营销总结
  • 国家住房城乡建设部网站英雄联盟韩国
  • 网站流量30g最近的大新闻
  • 网站开发关键技术微信推广方法
  • 做网站推广员工互联网+营销策略怎么写
  • 南通网站推广怎么收费app开发公司有哪些
  • 湖州外贸网站建设微博搜索引擎优化
  • 企业网站怎么做的正在直播足球比赛
  • 网站首页倒计时功能怎么做王通seo赚钱培训
  • 项目网络计划北京网站优化专家
  • 北京朝阳区做网站百度搜索推广收费标准
  • 满屏滚动网站咋做安阳企业网站优化外包