网站安全政策csp防止xss攻击

2020-07-28 17:17:58 阅读:2232

xss攻击可以说是最常见的攻击了,防不胜防,因为我们总不能任何的post提交都挨个检查和过滤xss吧?有些正常的xss可能也会被加载怎么办?所以我们就需要使用内容安全政策,简称csp,以下内容我都用简拼csp,就不再说网站安全政策几个字了。csp说的直白点,就是告诉打开网页的浏览器,哪一些东西在这个网页允许被加载,哪一些东西在这个网页不允许被加载,本质上和白名单差不多。可以说,csp是防止xss攻击的利器!因为目前很多网站攻击,都会基于xss的post提交攻击,当用户post提交之后,xss如果没被过滤,那么打开网页,就会执行这个xss地址了,网站被攻击就变得很容易。由于csp设置方法很多,防护等级也不同,我这边只介绍最简单和最常用的方法:不符合csp规则的链接和资源禁止被加载!使用方法:1.http头信息2.http的meta标签,我这里主要说一下使用meta标签的方法:在html中,使用meta标签,如下:上面这一行的意思是,当页面加载的时候,所有的引用,比如:css、js、img、iframe、font等,只能引用当前域名下的,其他域名的引用资源将不再被加载!当然,这是一个范限制,您可以精确到每一个步骤,比如所有资源都是只允许当前域名,但是script可以允许使用其他的域名:还可以不限制某些链接,比如不限制css的引入地址:当然除此之外,还可以有其他的限制,就不一一列举了,我直接把限制的名字发出来:script-src:外部脚本style-src:样式表img-src:图像media-src:媒体文件(音频和视频)font-src:字体文件object-src:插件(比如Flash)child-src:框架frame-ancestors:嵌入的外部资源(比如、、和)connect-src:HTTP连接(通过XHR、WebSockets、EventSource等)worker-src:worker脚本manifest-src:manifest文件

如何使用百度一键导航到目的地

2020-07-28 16:31:57 阅读:1954

直接导航目的地 body,html,#allmap{width:100%;height:100%;overflow:hidden;margin:0;font-family:"微软雅黑";} varmap=newBMap.Map("allmap"); varpoint=newBMap.Point(118.802463,35.205134); map.centerAndZoom(point,16); map.enableScrollWheelZoom(); varmyIcon=newBMap.Icon("myicon.png",newBMap.Size(30,30),{ anchor:newBMap.Size(10,10) }); varmarker=newBMap.Marker(point,{icon:myIcon}); map.addOverlay(marker); vargeolocation=newBMap.Geolocation(); geolocation.getCurrentPosition(function(r){ if(this.getStatus()==BMAP_STATUS_SUCCESS){ varmk=newBMap.Marker(r.point); map.addOverlay(mk); //map.panTo(r.point);//地图中心点移到当前位置 varlatCurrent=r.point.lat; varlngCurrent=r.point.lng; //alert('我的位置:'+latCurrent+','+lngCurrent); location.href="https://api.map.baidu.com/direction?origin="+latCurrent+","+lngCurrent+"&destination=35.205134,118.802463&mode=driving®ion=临沂市&output=html"; } else{ alert('failed'+this.getStatus()); } },{enableHighAccuracy:true}) map.addOverlay(marker); varlicontent="湖南*****有限公司"; licontent+="地址:龙岗市***区解放路1888号"; licontent+="电话:0539-88881234"; varopts={ width:200, height:80, }; varinfoWindow=newBMap.InfoWindow(licontent,opts); marker.openInfoWindow(infoWindow); marker.addEventListener('click',function(){ marker.openInfoWindow(infoWindow); }); 将以上代码复制,然后到lbs.baidu.com申请一个key换上,然后在你的网站里面加上链接到这个页面,用户点击连接的时候,跳转到这个页面,这个页面就会自动获取用户当前所在的位置,并生成当前位置到设置好的目的地的路线。

centos8在线扩容硬盘

2020-06-20 01:42:09 阅读:2166

一个客户的服务器最近发现硬盘不太够用了,于是打算扩容一下。由于之前已经扩容过好多次了,但是呢,都没记录。这次正好顺便记录下来过程。第一步,点击服务器id,找到硬盘的页面,点击磁盘扩容。如下图:点击进入后,有一个在线扩容,勾选即可,如下图:然后点击这个页面的右下角,确定扩容按钮,付费即可。不在截图。第二步:使用xshell或者putty登陆服务器,运行fdisk-l查看硬盘是否已经读出来了,虽然还没有添加进去,但是可以看到买的硬盘了。然后根据操作系统安装growpart或者xfsprogs扩容格式化工具,安装方式很简单,就两行,一行一行执行就行,如下:yuminstallcloud-utils-growpart yuminstallxfsprogs第三步:运行df-Th看一下/dev/vdb的系统类型,一般是xfs和ext4,由于我的硬盘是xfs,所以我说一下xfs的扩容方法,至于ext4的系统格式,等有空再写一篇文章。先看一下df-Th的运行结果:第四步:运行命令:growpart/dev/vda1,会得到一行:CHANGED:partition=1start=2048开头的内容,表示我们要扩容第一个分区第五步:运行命令:xfs_growfs/进行硬盘扩容,运行完之后,再运行df-h查看是否扩容成功,如果看到硬盘了,重启一下,重启后如果挂载的扩容分区没了,那就再来一次,不过失败的概率很低,基本不太可能。

HomebrewCN:Homebrew的国内安装脚本,从此告别龟速更新

2020-06-17 19:42:20 阅读:2353

Homebrew对于使用Mac的开发者来说,是再熟悉不过的了,它可以在macOS中方便的安装和管理各种系统并不自带的开发包。但令人苦恼的是很多时候它的下载和更新速度太慢,让人非常头疼,今天Gitee为各位推荐的就是在国内自动安装Homebrew的脚本。项目名称:HomebrewCN项目作者:CunKai项目地址:https://gitee.com/cunkai/HomebrewCN脚本内容/bin/zsh-c"$(curl-fsSLhttps://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"只需要把这段脚本内容复制到「终端」中即可。这时我们就可以看到速度有多么的快了,Gitee表示安装Homebrew从来没有这么舒爽过!常见错误说明•Mac10.11系统版本以下的(包括10.11),brew官方已经停止对这类老系统的支持。•如果遇到报错中含有errno54/443/的问题:这种一般切换源以后没有问题,因为都是公益服务器,不稳定性很大。•检测到你不是最新系统,需要自动升级Ruby后失败的:rm-rf/Users/$(whoami)/Library/Caches/Homebrew/ brew-v如果还失败运行下面的脚本:/bin/zsh-c"$(curl-fsSLhttps://gitee.com/cunkai/HomebrewCN/raw/master/UpdateRuby.sh)"•如果报错commandnotfound:brew先运行下面命令看是否能出来Homebrew的版本号(结果看倒数3句)/usr/local/Homebrew/bin/brew-v再运行设置临时PATH的代码:exportPATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin brew-v如果能用就是电脑PATH配置问题,重启终端运行echo$PATH打印出来自己分析一下。•如果brew-v没有报错,brewupdate出错的:这种不影响使用,尝试再次运行brewupdate可能赶上服务器不稳定的一瞬间。•brew有一个自检程序,如果有问题自检试试:/usr/local/bin/brewdoctor提示github的地址问题不用在意,因为换成国内地址了,所以出现了警告。提示:本文转自马云公众号:码云Gitee如有侵权请联系我删除。

阿里云服务器怎么挂载云盘?

2020-05-30 16:14:18 阅读:2055

由于需要,公司帮客户买了一个服务器,硬盘是150gb的数据盘,直接挂上了。考虑到部分人可能没接触过怎么挂载云盘,所以写了一个教程简单介绍下。第一步:fdisk-l查看云盘是不是在服务器上,能不能读到,如下:[root@iZ2zej35ibymqx19ugd0ekZ~]#fdisk-l Disk/dev/vda:100GiB,107374182400bytes,209715200sectors Units:sectorsof1*512=512bytes Sectorsize(logical/physical):512bytes/512bytes I/Osize(minimum/optimal):512bytes/512bytes Disklabeltype:dos Diskidentifier:0x951dd9ee DeviceBootStartEndSectorsSizeIdType /dev/vda1*2048209715166209713119100G83Linux Disk/dev/vdb:150GiB,161061273600bytes,314572800sectors Units:sectorsof1*512=512bytes Sectorsize(logical/physical):512bytes/512bytes I/Osize(minimum/optimal):512bytes/512bytes如上的:“Disk/dev/vdb:150GiB,161061273600bytes,314572800sectors”就表示有这个150gb的硬盘没挂载。但是服务器已经把他识别为/dev/vdb第二步:把这个识别到的盘格式化一下:mkfs.ext4/dev/vdb第三步:创建一个文件夹,用来挂载这个vdb的盘。命令为:cd/ mkdirwww这一步是进入根目录,并创建一个www名字的文件夹第四步:挂载:mount/dev/vdb/www第五步:记录到系统里,每次开机自动挂载,免得每次开机还得重新挂载一次:vi/etc/fstab 点击i进行编辑 加一行: /dev/vdb/wwwext4defaults00 按住esc 按一下冒号 输入wq退出效果图:最后,运行more/etc/fstab查看是否加入到开机自动挂载

支付宝提现参考(企业付款)

2020-05-06 17:21:29 阅读:2208

1.支付宝商户平台开通企业付款接口2.接口签名和验签方式需要使用证书加签和验签(证书生成工具下载地址https://ideservice.alipay.com/ide/getPluginUrl.htm?clientType=assistant&platform=win&channelType=WEB)3.通过签名工具生成证书,上传到支付宝商户平台处,保存好账户的支付宝公钥证书、应用公钥证书和应用私钥4.官方下载phpsdk(https://opendocs.alipay.com/open/54/103419/),sdk中包含了所有的调用方式和示例文件5.发起转账的时候需要使用AopCertClient(带证书版)去调用,AopClient已经不支持6.此处是客户端调用类实例里面发起调用之前的完善方式都有7.实际操作/** *@param[]$body请求数据 *@paramint$type1转账到支付宝账户2转账到银行卡3收发现金红包 *@paramstring$identity_typeALIPAY_LOGON_ID支付宝登录号,支持邮箱和手机号格式ALIPAY_USER_ID支付宝的会员ID默认为支付宝登录号 *@throws\Exception */ publicfunctionwithdraw($body,$type=1,$identity_type="ALIPAY_LOGON_ID") { require_onceEXTEND_PATH."alipay/aop/request/AlipayFundTransUniTransferRequest.php"; if($type==1){ $body['product_code']="TRANS_ACCOUNT_NO_PWD"; $body['biz_scene']="DIRECT_TRANSFER"; }elseif($type==2){ $body['product_code']="TRANS_BANKCARD_NO_PWD"; $body['biz_scene']="DIRECT_TRANSFER"; }elseif($type==3){ $body['product_code']="STD_RED_PACKET"; $body['biz_scene']="PERSONAL_COLLECTION"; if(!isset($body['original_order_id'])||empty($body['original_order_id'])){ return['code'=>0,'msg'=>"原支付宝业务单号不能为空"]; } }else{ return['code'=>0,'msg'=>"提现类型参数错误"]; } $aop=self::getAop(); $request=new\AlipayFundTransUniTransferRequest(); $bizContent=json_encode($body); $request->setBizContent($bizContent); $result=$aop->execute($request); $responseNode=str_replace(".","_",$request->getApiMethodName())."_response"; $resultCode=$result->$responseNode->code; if(!empty($resultCode)&&$resultCode==10000){ return['code'=>1]; }else{ return['code'=>0,"msg"=>$result->$responseNode->msg."|".$result->$responseNode->sub_msg]; } } staticpublicfunctiongetAop() { require_onceEXTEND_PATH."alipay/aop/AopCertClient.php"; $aop=new\AopCertClient(); $aop->gatewayUrl='https://openapi.alipay.com/gateway.do'; $aop->appId=config("alipay.app_id"); $aop->rsaPrivateKey=config('alipay.rsaPrivateKey'); $aop->alipayrsaPublicKey=$aop->getPublicKey(config('alipay.alipay_cert_public_path'));//调用getPublicKey从支付宝公钥证书中提取公钥 $aop->apiVersion='1.0'; $aop->signType='RSA2'; $aop->postCharset='utf-8'; $aop->format='json'; $aop->isCheckAlipayPublicCert=true;//是否校验自动下载的支付宝公钥证书,如果开启校验要保证支付宝根证书在有效期内 $aop->appCertSN=$aop->getCertSN(config('alipay.app_cert_path'));//调用getCertSN获取证书序列号 $aop->alipayRootCertSN=$aop->getRootCertSN(config('alipay.root_cert_path'));//调用getRootCertSN获取支付宝根证书序列号 return$aop; }

上报错误