专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

Web安全头号大敌XSS漏洞解决最佳实践

  写在前面
  虽然今天是周末,但职位每日推荐不可少,万一有努力找工作的小伙伴因为我一天偷懒导致没找到满意工作那就是我的罪过了,今日职位已放置在文章末尾,请注意查看!
  引言
  XSS是目前最普遍的Web应用安全漏洞,它带来的危害是巨大的,是Web安全的头号大敌。
  关键词:跨站脚本(JavaScript、Java、VBScript、ActiveX、Flash或者HTML)注入执行1。什么是XSS漏洞?
  XSS攻击:跨站脚本攻击(CrossSiteScripting),为不和前端层叠样式表(CascadingStyleSheets)CSS混淆,故将跨站脚本攻击缩写为XSS。
  XSS(跨站脚本攻击)是指恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。类似于sql注入。是目前最普遍的Web应用安全漏洞,也是Web攻击中最常见的攻击方式之一。
  XSS(跨站脚本攻击)攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、VBScript、ActiveX、Flash或者甚至是普通的HTML。攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。2。XSS漏洞攻击原理及攻击手段
  HTML是一种超文本标记语言,通过将一些字符特殊地对待来区别文本和标记,例如,小于符号()被看作是HTML标签的开始,之间的字符是页面的标题等等。
  当动态页面中插入的内容含有这些特殊字符(如)时,用户浏览器会将其误认为是插入了HTML标签,当这些HTML标签引入了一段JavaScript脚本时,这些脚本程序就将会在用户浏览器中执行。所以,当这些特殊字符不能被动态页面检查或检查出现失误时,就将会产生XSS漏洞。
  常用的XSS攻击手段和目的有:
  1、盗用cookie,获取敏感信息。
  2、利用植入Flash,通过crossdomain权限设置进一步获取更高权限;或者利用Java等得到类似的操作。
  3、利用iframe、frame、XMLHttpRequest或上述Flash等方式,以(被攻击)用户的身份执行一些管理动作,或执行一些一般的如发微博、加好友、发私信等操作。
  4、利用可被攻击的域受到其他域信任的特点,以受信任来源的身份请求一些平时不允许的操作,如进行不当的投票活动。
  5、在访问量极大的一些页面上的XSS可以攻击一些小型网站,实现DDoS攻击的效果。
  最简单的XSS示例:inputtypebuttonvalue评论input3。XSS分类如下:
  分类
  主要特点
  存储型XSS
  经过后端服务处理,数据存储在数据库端
  反射型XSS
  经过后端服务处理,不存储数据库
  DOM型XSS
  不经过后端服务处理,不存储数据库
  4。XSS漏洞分析
  4。1存储型XSS
  通过网页注入的代码最终会存储在数据库或其他物理文件中,在某个页面中注入的代码会被浏览器成功执行,该类型的漏洞存在持久性的特点。
  主要特点:存储持久性
  图解成因分析:
  4。2反射型XSS
  一般是通过url的形式注入代码,注入的代码不在服务器端存储,但会在服务器端进行处理然后进行回显,在回显时浏览器会触发漏洞执行注入代码,该类型攻击具有临时性特点。
  主要特点:回显临时性
  图解成因分析
  4。3DOM型XSS
  也是通过url的形式注入代码,注入的代码服务器端程序不存储、不处理,而是由浏览器进行处理,该类型攻击也具有临时性特点。主要特点:不存储、不处理浏览器临时性
  图解成因分析
  5。三种XSS漏洞对比
  分类
  一般表现形式
  特点
  存储型XSS
  表现为包含表单的页面,post提交后数据存储在数据库,通过其他页面访问触发
  存储、持久性
  反射型XSS
  表现为包含参数的url地址,参数经后端程序程序处理后回显,通过访问url触发
  url参数、后端处理参数、临时性
  DOM型XSS
  表现为包含参数的url地址,参数由页面中的JS代码处理,通过访问url触发
  url参数、JS处理参数、临时性
  6。植入JS代码攻击及危害分析
  外在表现形式:直接注入JavaScript代码引用外部JS文件
  基本实现原理:通过img标签的src发送数据构造表单诱导用户输入账密构造隐藏的form表单自动提交页面强制跳转植入文字链接、图片链接
  潜在危害:获取管理员或者其他用户Cookie,冒充用户身份登录构造表单诱导用户输入账号、密码,获取账密跳转到其他网站,网站流量被窃取植入广告、外链等通过隐藏友链提升其他网站百度权重(SEO黑帽)
  7。植入HTML代码攻击及危害分析
  外在表现形式:构造img标签构造a标签构造iframe构造其他HTML标签
  基本实现原理:通过img标签的src发送数据通过img的onerror触发脚本代码通过a标签被动触发脚本代码hrefonclick通过iframe引入第三方页面直接构造文字链接或图片链接style属性嵌入脚本代码backgroundimage:url(javascript:);(浏览器已可防范)
  潜在危害:获取管理员或者其他用户Cookie,冒充用户身份登录构造表单诱导用户输入账号、密码,获取账密植入广告、外链等通过隐藏友链提升其他网站百度权重(SEO黑帽)
  8。XSS简单预防策略
  8。1对html标签进行字符替换:replaceAll(script,);。。。prepdatatrack111spanstyleletterspacing:1px;存在问题:spanblockquoteclasspgcblockquoteabstractp大小写问题blockquotepdatatrack113spanstyleletterspacing:1px;优化升级:spanblockquoteclasspgcblockquoteabstractp正则表达式blockquotepdatatrack115spanstyleletterspacing:1px;存在问题:spanblockquoteclasspgcblockquoteabstractp反替换scrscriptiptscriptblockquotepdatatrack117spanstyleletterspacing:1px;strong8。2对html字符转义或是半角转全角字符:strongspanprecode{,,}
  转义:
  {,,})
  全角:
  {,,}codeprepdatatrack119spanstyleletterspacing:1px;strong新场景:strongspanblockquoteclasspgcblockquoteabstractp页面中需要根据某个参数生成文字链接blockquotepdatatrack121spanstyleletterspacing:1px;strong存在问题:strongspanblockquoteclasspgcblockquoteabstractpa标签的href属性javascript:blockquotepdatatrack123spanstyleletterspacing:1px;strong其他问题:strongspanblockquoteclasspgcblockquoteabstractp针对json字符串的场景pdatatrack205如何公用的问题blockquotepdatatrack126
  h1classpgcharrowrightdatatrack1279。XSS漏洞预防策略最佳实践h1pdatatrack128spanstyleletterspacing:1px;strong9。1输入环节strongspanullidatatrack129emspanstyleletterspacing:1px;spanstylecolor:0052FF;ttdarkmodecolor:005CFF;页面限制输入长度、特殊字符限制,后端代码限制输入长度、处理特殊字符spanspanemlilidatatrack130emspanstyleletterspacing:1px;spanstylecolor:0052FF;ttdarkmodecolor:005CFF;Filter过滤器统一处理(自定义处理规则、使用ApacheText、使用OwaspAntiSamy)spanspanemliulpdatatrack131spanstyleletterspacing:1px;strong9。2Cookie防护strongspanullidatatrack132emspanstyleletterspacing:1px;spanstylecolor:0052FF;ttdarkmodecolor:005CFF;cookie设置httponly,一般servlet容器默认httponly为truespanspanemlilidatatrack133emspanstyleletterspacing:1px;spanstylecolor:0052FF;ttdarkmodecolor:005CFF;resp。setHeader(SETCOOKIE,JSESSIONIDrequest。getSession()。getId();HttpOnly);spanspanemliulpdatatrack134spanstyleletterspacing:1px;strong9。3XFrameOptions响应头(是否允许frame、iframe等标记)strongspanullidatatrack135emspanstyleletterspacing:1px;spanstylecolor:0052FF;ttdarkmodecolor:005CFF;DENY不允许、SAMEORIGIN可在相同域名页面的frame中展示、ALLOWFROMuri可在指定页的frame中展示spanspanemlilidatatrack136emspanstyleletterspacing:1px;spanstylecolor:0052FF;ttdarkmodecolor:005CFF;addheaderXFrameOptionsSAMEORIGIN;在nginx的http或server节点中配置即可spanspanemlilidatatrack137emspanstyleletterspacing:1px;spanstylecolor:0052FF;ttdarkmodecolor:005CFF;也可通过Filter设置resp。setHeader(xframeoptions,SAMEORIGIN);spanspanemliulpdatatrack138spanstyleletterspacing:1px;strong9。4输出环节strongspanullidatatrack139emspanstyleletterspacing:1px;spanstylecolor:0052FF;ttdarkmodecolor:005CFF;OWASPESAPIforJavaspanspanemlilidatatrack140emspanstyleletterspacing:1px;spanstylecolor:0052FF;ttdarkmodecolor:005CFF;显示时对字符进行转义处理,各种模板都有相关语法,注意标签的正确使用spanspanemlilidatatrack141spanstyleletterspacing:1px;示例如下:spanliulpdatatrack142spanstyleletterspacing:1px;strongthymeleafstrongspanprecodespanth:utext{result}spanspanth:text{result}span
  !utext与text区别codeprepdatatrack144spanstyleletterspacing:1px;strongJSPstrongspanprecodec:outvalue{content}escapeXmlfalsec:outvalue{content}!escapeXml默认truecodeprepdatatrack146spanstyleletterspacing:1px;strong9。5DOM型XSSstrongspanullidatatrack147emspanstyleletterspacing:1px;spanstylecolor:0052FF;ttdarkmodecolor:005CFF;避免。innerHTML、。outerHTML、document。write()的使用,应使用。textContent、。setAttribute()等。spanspanemlilidatatrack148emspanstyleletterspacing:1px;spanstylecolor:0052FF;ttdarkmodecolor:005CFF;VueReact技术栈,避免使用vhtmldangerouslySetInnerHTMLspanspanemlilidatatrack149emspanstyleletterspacing:1px;spanstylecolor:0052FF;ttdarkmodecolor:005CFF;尤其注意onclick、onerror、onload、onmouseover、eval()、setTimeout()、setInterval()以及a标签的hrefspanspanemlilidatatrack150emspanstyleletterspacing:1px;spanstylecolor:0052FF;ttdarkmodecolor:005CFF;可使用OWASPesapi4js:esapi。jsspanspanemliulpdatatrack151
  h1classpgcharrowrightdatatrack15210。后端服务编码实践h1pdatatrack153spanstyleletterspacing:1px;通过https:start。spring。io快速创建springboot应用:spanimgsrcc2021imgdataimg。jpgdatasrcimgq01。71396。comcbmi7f1c68fe6f2f31bb。jpgimgwidth1080imgheight808imagetype1mimetypeimagepngweburitoscniqvj2lq49k021ec060f0bf243bbbc0a8b083d354b44pclasspgcimgcaptionimgsrcc2021imgdataimg。jpgdatasrcimgq01。71396。comcbmi796f946275fcae67。jpgimgwidth1080imgheight590imagetype1mimetypeimagepngweburitoscniqvj2lq49k0c99c351f7c5e4d9b8bd8beae97f3ca1epclasspgcimgcaptionpdatatrack154spanstyleletterspacing:1px;解压并在IDEA导入刚刚创建的xssdemo项目spanimgsrcc2021imgdataimg。jpgdatasrcimgq01。71396。comcbmiaf6df5507fb77223。jpgimgwidth1080imgheight681imagetype1mimetypeimagepngweburitoscniqvj2lq49k0aefa413a39c74ab3835a49106af30cccpclasspgcimgcaptionpdatatrack155spanstyleletterspacing:1px;在pom。xml添加相关依赖:spanprecode!防止XSS攻击的antiSamy
  dependency
  groupIdorg。owasp。antisamygroupId
  antisamyartifactId
  version1。5。7version
  dependency
  !fastjson依赖
  dependency
  groupIdcom。alibabagroupId
  fastjsonartifactId
  version1。2。62version
  dependencycodeprepdatatrack157spanstyleletterspacing:1px;修改xssdemo工程包结构如下:spanimgsrcc2021imgdataimg。jpgdatasrcimgq01。71396。comcbmi931a31ec2b38afad。jpgimgwidth1080imgheight524imagetype1mimetypeimagepngweburitoscniqvj2lq49k0ac84b648c49e4f0a84a07ec2a9c589aapclasspgcimgcaptionpdatatrack158spanstyleletterspacing:1px;XSSFilter编码如下:spanprecode
  program:xssdemo
  author:Mr。Zhang
  create:2021022115:45
  publicclassXssFilterimplementsFilter{
  Override
  publicvoiddoFilter(ServletRequestrequest,ServletResponseresponse,FilterChainchain)throwsIOException,ServletException{
  HttpServletRequesthttpServletRequest(HttpServletRequest)request;
  HttpServletRequestreq(HttpServletRequest)request;
  Stringpathreq。getServletPath();
  注解配置的是urlPatterns(过滤所有请求),所以这里对不需要过滤的静态资源url,作忽略处理(大家可以依照具体需求配置)
  String〔〕exclusionsUrls{。js,。gif,。jpg,。png,。css,。ico};
  for(Stringstr:exclusionsUrls){
  if(path。contains(str)){
  chain。doFilter(request,response);
  return;
  }
  }
  chain。doFilter(newXssRequestWrapper(httpServletRequest),response);
  }
  }codeprepdatatrack160spanstyleletterspacing:1px;XssRequestWrapper包装类编码如下:spanprecode
  program:xssdemo
  author:Mr。Zhang
  create:2021022115:46
  Slf4j
  publicclassXssRequestWrapperextendsHttpServletRequestWrapper{
  publicXssRequestWrapper(HttpServletRequestrequest){
  super(request);
  }
  获取策略文件,直接使用jar中自带的ebay策略文件
  privatestaticInputStreaminputStreamXssRequestWrapper。class。getClassLoader()
  。getResourceAsStream(antisamyebay。xml);
  privatestaticPolicypolicynull;
  static{
  try{
  使用静态代码块处理策略对象的创建
  policyPolicy。getInstance(inputStream);
  }catch(PolicyExceptione){
  e。printStackTrace();
  }
  }
  使用AntiSamy进行过滤数据
  paramhtml
  return
  privateStringxssClean(Stringhtml){
  StringcleanHTML;
  try{
  AntiSamyantiSamynewAntiSamy();
  CleanResultsscanantiSamy。scan(html,policy);
  cleanHTMLscan。getCleanHTML();
  }catch(ScanExceptione){
  e。printStackTrace();
  }catch(PolicyExceptione){
  e。printStackTrace();
  }
  returncleanHTML;
  }
  重写处理请求参数的方法
  paramname
  return
  Override
  publicString〔〕getParameterValues(Stringname){
  String〔〕valuessuper。getParameterValues(name);
  判断参数有值,如果没有值,直接返回
  if(valuesnull){
  returnnull;
  }
  遍历参数数组,使用AntiSamy进行过滤
  intlenvalues。length;
  String〔〕newValuesnewString〔len〕;
  for(inti0;ilen;i){
  过滤前的数据
  log。info(使用AntiSamy进行过滤清理,过滤清理之前的数据:{},values〔i〕);
  进行过滤
  newValues〔i〕xssClean(values〔i〕);
  过滤后的数据
  log。info(使用AntiSamy进行过滤清理,过滤清理之后的数据:{},newValues〔i〕);
  }
  返回过滤后的结果
  returnnewValues;
  }
  重写处理json数据的方法
  return
  throwsIOException
  Override
  publicServletInputStreamgetInputStream()throwsIOException{
  读取流
  BufferedReaderreadernewBufferedReader(
  newInputStreamReader(super。getInputStream(),UTF8));
  获取json格式的数据
  StringBuildersbnewStringBuilder();
  StringinputStr;
  while((inputStrreader。readLine())!null){
  sb。append(inputStr);
  }
  把json转为map
  MapmapJSON。parseObject(sb。toString(),Map。class);
  过滤前
  log。info(json过滤前:{},sb。toString());
  对map中的value值进行AntiSamy的过滤
  map。keySet()。forEach(k{
  map。put(k,xssClean(map。get(k)。toString()));
  });
  过滤后
  StringjsonJSON。toJSONString(map);
  log。info(json过滤后:{},json);
  把json数据转为流的格式进行返回
  ByteArrayInputStreambaisnewByteArrayInputStream(json。getBytes());
  returnnewServletInputStream(){
  Override
  publicbooleanisFinished(){
  returnfalse;
  }
  Override
  publicbooleanisReady(){
  returnfalse;
  }
  Override
  publicvoidsetReadListener(ReadListenerlistener){}
  Override
  publicintread()throwsIOException{
  returnbais。read();
  }
  };
  }
  }codeprepdatatrack162spanstyleletterspacing:1px;AntiSamyConfig配置过滤器类编码如下:spanprecode
  program:xssdemo
  author:Mr。Zhang
  create:2021022115:58
  Configuration
  publicclassAntiSamyConfig{
  配置xss过滤器
  return
  Bean
  publicFilterRegistrationBeancreate(){
  FilterRegistrationBeanfilterRegistrationBeannewFilterRegistrationBean(newXssFilter());
  filterRegistrationBean。addUrlPatterns();
  filterRegistrationBean。setOrder(1);
  returnfilterRegistrationBean;
  }
  }codeprepdatatrack164spanstyleletterspacing:1px;User实体类:spanprecode
  program:xssdemo
  author:Mr。Zhang
  create:2021022115:42
  Data
  publicclassUser{
  privateintid;
  privateStringname;
  privateintage;
  }codeprepdatatrack166spanstyleletterspacing:1px;UserController测试控制器类编码如下:spanprecode
  program:xssdemo
  author:Mr。Zhang
  create:2021022115:43
  Slf4j
  RestController
  RequestMapping(user)
  publicclassUserController{
  表单
  paramuser
  return
  PostMapping(save)
  publicStringsave(Useruser){
  log。info(name{},age{},user。getName(),user。getAge());
  returnJSON。toJSONString(user);
  }
  json数据格式请求体
  paramuser
  return
  PostMapping(json)
  publicStringsaveJson(RequestBodyUseruser){
  log。info(user{},user。toString());
  returnJSON。toJSONString(user);
  }
  }codeprepdatatrack168spanstyleletterspacing:1px;application。properties配置文件为空,运行启动类后默认端口号8080。spanpdatatrack169spanstyleletterspacing:1px;Postman模拟表单数据请求及响应效果如下:spanpdatatrack170
  imgsrcc2021imgdataimg。jpgdatasrcimgq01。71396。comcbmic066ba5ea4b08108。jpgimgwidth1080imgheight426imagetype1mimetypeimagepngweburitoscniqvj2lq49k0100beda382f64b6e86e6ec2cf9c26a05pclasspgcimgcaptionpdatatrack171spanstyleletterspacing:1px;后端程序控制台日志打印如下:spanimgsrcc2021imgdataimg。jpgdatasrcimgq01。71396。comcbmi60b2dd623049b00d。jpgimgwidth1080imgheight263imagetype1mimetypeimagepngweburitoscniqvj2lq49k07425cf3a8f1544db86c695d731a868fdpclasspgcimgcaptionpdatatrack172spanstyleletterspacing:1px;Postman模拟json数据请求及响应效果如下:spanimgsrcc2021imgdataimg。jpgdatasrcimgq01。71396。comcbmif51f506f1741b457。jpgimgwidth1080imgheight411imagetype1mimetypeimagepngweburitoscniqvj2lq49k0b9b8fe566cc94640875ddeef2bb62d95pclasspgcimgcaptionpdatatrack173spanstyleletterspacing:1px;后端程序控制台日志打印如下:spanimgsrcc2021imgdataimg。jpgdatasrcimgq01。71396。comcbmieaa63eb5398a638b。jpgimgwidth1080imgheight278imagetype1mimetypeimagepngweburitoscniqvj2lq49k011eede9ed9e648808394004ecd621fa5pclasspgcimgcaptionpdatatrack174spanstyleletterspacing:1px;以上两个情况,请求参数中隐藏的xss攻击代码被过滤器过滤后再进入Contrlloer层处理。spanpdatatrack175
  h1classpgcharrowrightdatatrack17611。能不能根本上解决问题,即浏览器自动禁止外部注入恶意脚本?h1pdatatrack177spanstyleletterspacing:1px;开启CSP(内容安全策略ContentSecurityPolicy)方法:设置HTTP的头部字段spanprecoderesp。setHeader(ContentSecurityPolicy,defaultsrchttp:https:);codeprepdatatrack179spanstyleletterspacing:1px;设置网页的spanstylebackgroundcolor:F3F4F4;ttdarkmodebgcolor:BDBEBE;metaspan标签spanprecodemetahttpequivContentSecurityPolicycontentformactionself;codeprepdatatrack181spanstyleletterspacing:1px;strongCSP常见可选策略设置strong如下:spantablestyleminwidth:112px;colgroupcolcolcolgrouptbodytrtdpdatatrack182spanstyleletterspacing:1px;strong策略strongspantdtdpdatatrack183spanstyleletterspacing:1px;strong含义strongspantdtrtrtdpdatatrack184spanstylefontsize:0。882em;spanstyleletterspacing:1px;defaultsrchttp:https:;spanspantdtdpdatatrack185spanstylefontsize:0。882em;spanstyleletterspacing:1px;只能通过外联的方式引用js和cssspanspantdtrtrtdpdatatrack186spanstylefontsize:0。882em;spanstyleletterspacing:1px;defaultsrcselfhttp:smart4j。cn;spanspantdtdpdatatrack187spanstylefontsize:0。882em;spanstyleletterspacing:1px;只能在指定的域下加载文件(包含img)spanspantdtrtrtdpdatatrack188spanstylefontsize:0。882em;spanstyleletterspacing:1px;formactionself;spanspantdtdpdatatrack189spanstylefontsize:0。882em;spanstyleletterspacing:1px;form表单的只能在指定域提交spanspantdtrtrtdpdatatrack190spanstylefontsize:0。882em;spanstyleletterspacing:1px;scriptsrcself;spanspantdtdpdatatrack191spanstylefontsize:0。882em;spanstyleletterspacing:1px;只限制js文件在同域加载文件spanspantdtrtrtdpdatatrack192spanstylefontsize:0。882em;spanstyleletterspacing:1px;reporturireport;spanspantdtdpdatatrack193spanstylefontsize:0。882em;spanstyleletterspacing:1px;向指定uri发送违规报告(不支持meta方式)spanspantdtrtbodytablepdatatrack196本文转载自码上修行pstyletextalign:center;datatrack208spanstylefontsize:1。176em;strongspanstylecolor:3D89FF;ttdarkmodecolor:3D89FF;今日职位推荐:spanstrongspanpstyletextalign:left;datatrack209spanstylefontsize:1。176em;strong前端开发主管strongspanpstyletextalign:left;datatrack216要求:pstyletextalign:left;datatrack2171。本科及以上学历,软件技术、计算机科学与技术、电子工程等相关专业,5年及以上前端开发经验pstyletextalign:left;datatrack2182。精通VueJQuery等JS框架,HTMLHTML5CSS3JavaScript,熟练使用uniapppstyletextalign:left;datatrack2193。具备浏览器开发调试技能,能分析解决问题pstyletextalign:left;datatrack2204。掌握Web前端构建工具,能够运用构建工具pstyletextalign:left;datatrack2215。具有基于VUE低代码开发经验pdatatrack222办公地址:苏州市吴中区pdatatrack223薪资范围:20k25kpdatatrack225投递方式:FreemenApp中定位苏州搜索strong前端开发主管strongimgsrcc2021imgdataimg。jpgdatasrcimgq01。71396。comcbmid45c5e4c90538b04。jpgimgwidth1024imgheight512imagetype1mimetypeimagepngweburitoscniqvj2lq49k086a0cd5af6724207be6528f2bd007432pclasspgcimgcaption
  div
  divclassreadallbox
  divclassreadmoremaskdiv
  aclassreadmorebtntargetself展开阅读全文a
  div
  pclassinfo投稿时间:20230213最后更新:20230324
  pclasstags
  标签:ahrefat392800。htmltargetblank攻击者aahrefat382660。htmltargetblank大敌aahrefat257990。htmltargetblank表单aahrefat88060。htmltargetblank头号aahrefat266670。htmltargetblank过滤器aahrefat125750。htmltargetblank脚本aahrefat99550。htmltargetblank漏洞aahrefat109780。htmltargetblank恶意aahrefat6870。htmltargetblank策略aahrefat43820。htmltargetblank参数aahrefat83070。htmltargetblank代码aahrefat56110。htmltargetblank文件aahrefat33060。htmltargetblank网页a
  pclasspageLink
  pclasspagelink1
  ahrefa151676251417699869。html1a
  ahrefa151676251416699868。htmlb2ba
  ahrefa151676251283699867。html3a
  ahrefa151676251282699866。html4a
  ahrefa151676251280699865。html5a
  divclassabjs2
  scripttypetextjavascriptsrcabjsm2。phpscript

57岁捷克传奇超模宝琳娜重回巅峰,面临破产自强不息!57岁的捷克传奇超模PaulinaPorizkova(宝琳娜波罗兹科瓦)登上了斯堪的纳维亚半岛版的VOGUE杂志2023年二月三月合刊封面,再次回到了时尚圈的舞台中心。Paulin要水光不要油光!SOFINA苏菲娜让你和油腻说拜拜前段时间,韩国明星张元英的水光肌妆容又一次引起热议。脸部过于光亮直接照出耳环倒影,网友直呼太油腻!水光肌清透且膨胀的皮肤效果确实能让肌肤看起来更加年轻弹润,但水光油光仅一线之隔,一没人用你定妆照?巴特勒我将换回那个发型你们不用也得用直播吧2月2日讯本赛季初,热火球员巴特勒以脏辫造型亮相。但拍完定妆照后,巴特勒就换掉了这个发型。因此,媒体们也没有使用巴特勒的该定妆照作为他的肖像,而是直接用上赛季的,甚至用2K里月薪3k怎么穿出有钱人的样子?这么穿稳赢!天南地北大拜年大部分小伙伴应该都已经过完假期了吧,不知道宅家多日的你们有米有悄悄长肉肉呢。(我都已经涨了4斤了!)在家习惯了袄子大棉裤随便穿穿,可别忘了自己都市丽人该有的亚子。是时撩到男人腿软的情话1老牛在吗?嫩草想你了2。你有脾气算什么?我有耐心3。我长不高的原因是因为迷你4。我中毒了要你亲热解毒5。表白要一步到位,你好,合葬吗?6。余生,不用多多指教,你听我的就行7。不能对生活保持热爱,就是最好的姿态来源新华社以最好的姿态,成就最美的未来。很多人习惯把自己对待生活的态度,和现实的境况划上等号。境遇平顺了,自然信心满满,而一旦遭遇了不如意之事,整个人的状态也就随之变得沮丧低落,甚虐到令人心肝疼的短文我知道的,许钦南不爱我,连说要娶我也是被迫的。我们第一次见面是在我刚进入大学那时候,那天我记得很清楚,他穿着干净的白衬衫,缓缓走在树影斑驳的校园道上,他与他旁边的室友在说笑,光打在缺点的功德一位挑水夫,有两个水桶,分别吊在扁担的两头,其中一个桶子有裂缝,另一个则完好无缺。在每趟长途的挑运之后,完好无缺的桶子,总是能将满满一种桶水从溪边送到主人家中,但是有裂缝的桶子到达我撕的衣洞,是爷爷的爱人,总有离开的一天,每个人的岁月都不同,短暂的生命总会留下不同的涟漪,身边陆陆续续有人离开,有人告别,这一辞只是脑海的记忆,随着时间的流逝,又有多少人记得过去的事,过去的人,过去的提醒中老年,早餐别凑合,少吃馒头和面条,多吃这6样营养又健康大家好,这里是小慧今天说美食。二次感染来袭,不管老人还是小孩,健康的饮食是身体健康的基础。一日三餐,早餐千万别凑合,早餐是饮食养生中比较重视的。早餐不宜吃油炸油煎食物,这类食物升糖ChloeFerry身穿黑色上衣搭蓝色牛仔裤简约休闲,走路带风大气时尚近日,女星克洛伊费里(ChloeFerry)现身街头,一直在事业上忙碌的她很是积极,近几年,她忙于工作,很少给自己腾出时间,也是个积极工作狂。克洛伊费里(ChloeFerry)在网
上海楼市变了撑到现在,上海楼市其实已经很不容易了!我经常和大家强调,楼市是有周期的,哪怕你是上海北京,大家都逃不过楼市周期。上海这一轮行情从2020年下半年到现在,行情足足走了一年多的时间,现一天接超10单!天凉了,这类职业突然火了!订单大增70家政市场迎旺季换季类服务订单同比增长超七成天气转凉,家政市场也迎来旺季。记者从北京的多家家政服务店铺了解到,由于今年9月初一股强冷空气入侵,家政市场也提前半个多月进入了旺季,换季服双11电商平台新观察淡化成交额回归经营本质助力中小企业转型本报记者许洁国家邮政局11月12日发布的数据显示,双11当天全国快递处理量达5。52亿件,是日常业务量水平的1。8倍。淘宝天猫产业发展及运营中心总裁吹雪11月11日对证券日报记者表勇士险胜骑士!库里杀死比赛,普尔回暖,替补出2奇兵,裁判太黑北京时间11月12号勇士和骑士的比赛,这场比赛勇士大部分时间都处于落后。幸好库里连续得分,帮助球队锁定胜局,从而106101险胜骑士。而今天库里和维金斯都是百分百发挥。特别是对于库有关如何开车入境老挝问题伙计,去缅甸老挝赚钱吗?老挝被誉为自驾游的天堂,因为地广人稀女多男少,美女特别多,她们热情奔放。对中国人很有好感,很多在这边工作或来旅游的老乡都找到了女朋友。沿途风景秀丽惊险刺激,郑和下西洋究竟是劳民伤财还是扬大明国威呢?郑和下西洋究竟是一次劳名伤财面子的工程,还是一次为明朝赚的盆满钵满的巨额海外贸易28年间中国航海家郑和率船对七下西洋。和平造访了30多个国家和地区。拉开了有史以来规模最大的海上探险北大西洋百慕大三角探险活动找到挑战者号太空飞船碎片编译Mintina历史频道的潜水者在佛罗里达州Space海岸依然发现了挑战者号太空飞船的一块碎片视频截图TheHistoryChannel美国航天和航空局确认,历史频道的一集节目中当首批城市伴侣动物进入暮年,宠物协和肿瘤医生看到这些胖虎在中国农业大学动物医院做检查。(受访者供图图)在北京,一只名叫胖虎的小猫精神变差。第一次治疗不见效,胖虎马上转诊。猫主人带着它去了中国农业大学动物医院(下称农大动物医院)。医生随苏先生走进人类与动物互动的世界,感受人和动物相处的和谐之美我们每一个人都一定和各种小动物有所接触,即使它们不是我们自己的宠物,也一定在我们的人生中扮演着不可磨灭的角色。流浪猫流浪狗一定是每一个人都见过的。可是我们又有谁去思考关于它们的故事到了冬天才发现羽绒服不能配打底裤,太土!搭这3种裤子更洋气随着气温持续降低,全国大部分城市已经开始陆续入冬了。而冬天最热门的单品就是羽绒服,每年一到这时候,关于羽绒服的穿搭话题频频登上时尚热门。不想把自己穿得太臃肿,又想具备保暖效果。因此今年毛衣越大越时髦!不仅遮肉还高级,配裤子裙子都好看时尚流行的趋势总是能不断令人有惊喜感,秋冬季节正是穿毛衣的时节,时髦精们的毛衣今年又进行了一次大换血,今年流行的毛衣不再是修身贴合的了,如今是越大越时髦的趋势,不是宽松毛衣还不洋气
友情链接:快好知快生活快百科快传网中准网文好找聚热点快软网