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
俄版达沃斯论坛落幕,会上释放了哪些重要信号?6月18日,为期4天的圣彼得堡国际经济论坛(SPIEF)落幕。作为俄罗斯最重要的国际性大型经济论坛,SPIEF有着俄版达沃斯论坛之称。在俄乌冲突爆发,俄罗斯受到大规模制裁的背景……
陈小辉副市长向文旅系统干部职工宣讲党的二十大精神11月13日,市政府副市长陈小辉向文旅系统干部职工宣讲党的二十大精神,并传达贯彻11月10日文旅经济座谈会精神。宣讲会上,陈小辉紧扣党的二十大报告原文,结合泉州经济社会尤……
尺的腰围是多少厘米(腰围尺是多少厘米?)尺的腰围是多少厘米(腰围尺是多少厘米?)本文主要是腰围换算对照表。腰围2尺1是多少厘米?腰围2尺2是多少厘米?腰围2尺3是多少厘米?腰围2尺4是多少厘米?腰围2尺5是多少……
基金买入卖出最佳时间(一天的什么时段购买基金最合适?)基金买入卖出最佳时间(一天的什么时段购买基金最合适?)一天的什么时段买基金?这也是一件有讲究的事,而且是非常重要的事。第一点:不要在三点之后买众所周知,三点之……
今日头条极速版怎么赚钱(今日头条极速版)今日头条极速版怎么赚钱(今日头条极速版)018年底,今日头条上线了被广大网友称呼为赚钱版的极速版APP,经过一段时间的使用和摸索,终于获得了一点收益,接下来就把我总结的经……
连体人怎样结婚生子?泰国连体兄弟娶了一对姐妹,生育了22个孩泰国连体兄弟出生后被父母嫌弃,后来去了马戏团当小丑,取得了巨大的成功,成为了大富豪,娶了洋老婆,还生了22个孩子,活成了人生赢家,成为很多人眼中的励志传奇。1811年,邦……
从俄乌冲突分析武力收复台湾俄乌冲突已经持续近半年之久,从态势上看,俄罗斯并没有达成战役目的,这场博弈对俄乌双方来说都造成了巨大人员伤亡和财产损失,从目前看战争依然还要继续,俄罗斯何时才能战胜乌克兰?我感……
灰色裤子搭配什么颜色上衣(灰色裤子适合搭什么颜色的上衣)灰色裤子搭配什么颜色上衣(灰色裤子适合搭什么颜色的上衣)后台私信很多小可爱们问我:灰色裤子应该怎么搭?宠粉如我,今天就来聊聊灰色裤子的穿吧,搞不明白的小可爱赶快来开小灶吧……
医学博士年薪能达到多少钱?感谢邀请,我是海南黑凤梨,我来回答!对于医学博士年薪能达到多少钱这个问题,首先今天说医学博士的收入我们特指在医院上班的医学博士,因为我们平日里接触到的医学博士也几乎都是在……
卫衣搭配什么裤子(又到单穿卫衣的季节了)卫衣搭配什么裤子(又到单穿卫衣的季节了)又是一年一度随心所欲穿卫衣的季节,如果你还在为明天穿什么而烦恼,那就选卫衣吧!如果你还在不知道什么上衣最适合搭配半身裙,那就选卫衣……
今夜没有月光,月光也敞亮东江边的风有罗浮山的味道阳台上的灯固执的遮住了天上的圆月揣测,苏轼那时候,应该和我一样孤灯独坐影伴身把酒问天酒满怀我宁愿,皎皎空中孤月……
春季女士服装搭配(春季穿衣简约精致才好看)春季女士服装搭配(春季穿衣简约精致才好看)春季是穿衣的季节,将自己打扮得简约不失精致,除了可以让你看起来赏心悦目外,也能在很大程度上提升自信心,在变美之路上越走越远,远超……
为何李治把亲妹妹以皇后礼下葬?千年之后真相被揭开皇室丑闻要说唐高宗李治一生中做过最为荒唐的两件事,第一件便定是顶住全天下的压力,迎娶父亲才人,媚娘宠冠后宫。另一件就是,将自己一母同胞的嫡妹新城公主以皇后礼葬。在新城公主的……
生活知识科普蛋炒饭放什么调料在我们的生活当中有很多的常识性的知识大多数人都是不知道的,就好比最近就有很多小伙伴咨询小编问小编关于蛋炒饭放什么调料的这些知识点,这就说明了现在人们也开开渐渐关注起了蛋炒饭放什……
因传感器故障现代英国召回NEXOFE车型日前,车质网从国家市场监督管理总局缺陷产品管理中心网站获得最新消息,现代汽车因一些车辆可能会遇到氢气检测传感器故障,现代汽车将在英国召回NEXOFE车型,共计30辆。据了……
生活知识科普湖蟹属于海鲜吗在我们的生活当中有很多的常识性的知识大多数人都是不知道的,就好比最近就有很多小伙伴咨询小编问小编关于湖蟹属于海鲜吗的这些知识点,这就说明了现在人们也开开渐渐关注起了湖蟹属于海鲜……
生活知识科普湖蟹什么时候上市在我们的生活当中有很多的常识性的知识大多数人都是不知道的,就好比最近就有很多小伙伴咨询小编问小编关于湖蟹什么时候上市的这些知识点,这就说明了现在人们也开开渐渐关注起了湖蟹什么时……
生活知识科普煮糖心鸡蛋需要多长时间在我们的生活当中有很多的常识性的知识大多数人都是不知道的,就好比最近就有很多小伙伴咨询小编问小编关于煮糖心鸡蛋需要多长时间的这些知识点,这就说明了现在人们也开开渐渐关注起了煮糖……
生活知识科普洗衣服泡多长时间合适在我们的生活当中有很多的常识性的知识大多数人都是不知道的,就好比最近就有很多小伙伴咨询小编问小编关于洗衣服泡多长时间合适的这些知识点,这就说明了现在人们也开开渐渐关注起了洗衣服……
干掉光绪,慈禧最后的倔强维新变法失败,光绪被慈禧囚禁在瀛台,直到1908年光绪离世,整整十年。光绪帝从27周岁被囚禁到37周岁,人生最好的年华。瀛台位于西苑(中南海的南海)一座岛上,本是皇……
孕妇孕期该怎么休息?二胎又是男宝,说说我在孕期怀男宝的反应大宝今年已经3岁啦!整个孕期都盼望着来个小公主实现我儿女双全的美梦,但是万万没想到又是一位小王子!今天趁着宝宝熟睡前来打卡还愿,讲讲……
蒸鱼几分钟(蒸一条鱼要多久)蒸鱼几分钟(蒸一条鱼要多久)鱼肉的味道非常鲜美,滑嫩可口,算得上是大家都喜欢吃的一种肉了。鱼肉的做法有很多种,比如清蒸、红烧、炖汤等等,其中蒸出来的鱼肉味道非常的鲜美,保……
有哪些好吃不贵的水果推荐?要吃当季盛产的水果水果有它的季节性,现在物流发达,温室栽培,想吃什么水果都能买的到,还是建议吃当地的,当季的盛产水果,当季的水果温度适宜又盛产,自然会好吃又便宜,买在地的……
生活知识科普螃蟹是冷水下锅还是热水下锅在我们的生活当中有很多的常识性的知识大多数人都是不知道的,就好比最近就有很多小伙伴咨询小编问小编关于螃蟹是冷水下锅还是热水下锅的这些知识点,这就说明了现在人们也开开渐渐关注起了……