安全规范代码示例(请求及响应加解密、接口请求验证签名、入参过滤器、异常referer请求/登录拦截器)
一:加解密入参/出参
目的:为了防止请求参数及响应数据被暴力破解或截取,通过AES对称性加密传输规范,对请求及响应进行加解密处理
实现过程:创建请求及响应拦截器,对请求及响应源头进行数据处理,保证数据的安全传输
DecryptRequestBodyAdvice 客户端请求拦截器
EncodeResponseBodyAdvice 客户端响应拦截器
请求拦截器代码片段
@Component
如果放开注释,则表示监控所有controller请求入口
//@ControllerAdvice(basePackages = “com.ds.tech.controller”)
public class DecryptRequestBodyAdvice implements RequestBodyAdvice {
@Autowired
SystemConfig systemConfig;/*** 加载配置文件信息*/
@Override
public boolean supports(MethodParameter methodParameter, Type targetType,Class<? extends HttpMessageConverter<?>> converterType) {return true;
}/***读取请求头之前*/
@Override
public HttpInputMessage beforeBodyRead(HttpInputMessage inputMessage, MethodParameter parameter, Type targetType,Class<? extends HttpMessageConverter<?>> converterType) throws IOException {return inputMessage;
}@Override
@SuppressWarnings(value = { "unchecked", "rawtypes" })
public Object afterBodyRead(Object body, HttpInputMessage inputMessage, MethodParameter parameter, Type targetType,Class<? extends HttpMessageConverter<?>> converterType) {Object dealData = null;LogWriter.writeWorkLog("执行对客户端请求的数据解密");try {Map<String, String> dataMap = (Map) body;if (!MapUtils.isEmpty(dataMap)) {String srcData = dataMap.get("encryptStr");dealData = AESUtils.encrypt(srcData, systemConfig.getEncryptKey());LogWriter.writeWorkLog("解密后的数据:" + dealData);}} catch (Exception e) {LogWriter.writeErrorLog("解密失败", e);}return dealData;
}@Override
public Object handleEmptyBody(Object body, HttpInputMessage inputMessage, MethodParameter parameter,Type targetType, Class<? extends HttpMessageConverter<?>> converterType) {return body;
}
响应拦截器代码片段
/**
-
@title 客户端响应拦截器
-
@author chenpengfei
-
@date 2020年04月14日
-
@param body
-
@return object
*/
@Component
//@ControllerAdvice(“com.ds.tech.controller”) 放开注释则监听所有响应
@SuppressWarnings(value = { “all” }) 剔除所有警告注解
public class EncodeResponseBodyAdvice implements ResponseBodyAdvice {
@Autowired
SystemConfig systemConfig;@Override
public boolean supports(MethodParameter returnType, Class converterType) {
return true;
}/**
- @title 加密响应数据
- @author chenpengfei
- @date 2020年04月14日
- @param body:最终响应的内容
- @return object
*/
@Override
public Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType,
Class selectedConverterType, ServerHttpRequest request, ServerHttpResponse response) {
// 禁止fastjson转换循环引用
String bodyStr = JSON.toJSONString(body, SerializerFeature.DisableCircularReferenceDetect);
LogWriter.writeWorkLog(“开始加密服务器相应的数据:{}” + JSON.toJSONString(body));
ResultObject resultObject = new ResultObject();
String encodeStr = null;
JSONObject jsonData = JSONObject.parseObject(bodyStr);
try {
if (!ObjectUtils.isEmpty(jsonData)) {
encodeStr = AESUtils.encrypt(jsonData.getString(“data”).toString(),systemConfig.getEncryptKey());
LogWriter.writeWorkLog(“数据加密完成:{}” + encodeStr);
}
} catch (Exception e) {
LogWriter.writeErrorLog(AesEnum.DE_DATA_ERROR.getMessage(), e);
resultObject.setFailed(AesEnum.DE_DATA_ERROR);
return resultObject;
}
// 赋值返回值
OptASRData resultData = new OptASRData();
resultData.setResultEnData(encodeStr);
resultObject.setRetcode((int) jsonData.get(“retcode”));
resultObject.setSucceed(resultData);
resultObject.setRetmsg(jsonData.getString(“retmsg”));
return resultObject;
}
}
aes加解密方法说明
srcData:为接口请求传输的加密后的数据
encryptKey:为与接口调用者约束的对称性秘钥
AESUtils.encrypt(srcData, systemConfig.getEncryptKey());
加密及解密工具类代码
private static final String KEY_AES = “AES”;
public static String encrypt(String src, String key) throws Exception {byte[] raw = key.getBytes();SecretKeySpec skeySpec = new SecretKeySpec(raw, KEY_AES);Cipher cipher = Cipher.getInstance(KEY_AES);cipher.init(Cipher.ENCRYPT_MODE, skeySpec);byte[] encrypted = cipher.doFinal(src.getBytes());return byte2hex(encrypted);
}public static String decrypt(String src, String key) throws Exception {byte[] raw = key.getBytes();SecretKeySpec skeySpec = new SecretKeySpec(raw, KEY_AES);Cipher cipher = Cipher.getInstance(KEY_AES);cipher.init(Cipher.DECRYPT_MODE, skeySpec);byte[] encrypted1 = hex2byte(src);byte[] original = cipher.doFinal(encrypted1);String originalString = new String(original);return originalString;
}
private static byte[] hex2byte(String strhex) {
if (strhex == null) {
return null;
}
int l = strhex.length();
if (l % 2 == 1) {
return null;
}
byte[] b = new byte[l / 2];
for (int i = 0; i != l / 2; i++) {
b[i] = (byte) Integer.parseInt(strhex.substring(i * 2, i * 2 + 2), 16);
}
return b;
}
private static String byte2hex(byte[] b) {StringBuilder hs = new StringBuilder();String stmp = "";for (int n = 0; n < b.length; n++) {stmp = (Integer.toHexString(b[n] & 0XFF));if (stmp.length() == 1) {hs.append("0").append(stmp);} else {hs.append(stmp);}}return hs.toString().toUpperCase();
}(接口请求及加密规则见附件大神接口服务验签及加密规则)
二:接口请求验证签名
目的:为了接口请求的安全性,对接口调用者和服务提供者追加延签约束
实现过程:
1.接口调用者通过指定提供的接口服务号,用户登录生成的非固定token权限,服务请求的对称性秘钥key生成base64sign码做为接口请求的参数传递
2.服务提供者通过接口调用者传递的参数进行拼接,通过服务器端生成sign并与入参携带的sign进行对比
aop验签切面方法说明
/**
* 定义Controller方法切入点
/
@Pointcut("execution( com.ds.tech.controller…*(…))")
public void controllerMethodPointcutApi() {
}
@Pointcut("controllerMethodPointcutApi()")
public void controllerMethodPointcut() {
}
/**
*
* @param pjp
* @return
*/
@Around(“controllerMethodPointcut()”)
public Object doAround(ProceedingJoinPoint pjp) {
Object result = null;ResultObject<JSONObject> resultObject = new ResultObject<>();try {resultObject.setData(new JSONObject());Object[] args = pjp.getArgs();// 如果参数存在则进行api签名验证if (args.length <= 0) {resultObject.setFailed(ApiCommonEnum.INVALID_PARAMS.getCode(),ApiCommonEnum.INVALID_PARAMS.getMessage());result = resultObject;return result;}Object iptObj = args[0];String dtoClassName = iptObj.getClass().getName();ComIobj<?> comIptObj = getComObject(iptObj);resultObject = comSign(comIptObj);if (resultObject.getRetcode() != NumberConst.INT_ZERO) {return resultObject;}} catch (Exception e) {LogWriter.writeErrorLog(e);resultObject.setFailed(ApiCommonEnum.SIGN_EXP.getCode(), ApiCommonEnum.SIGN_EXP.getMessage());result = resultObject;return result;}try {result = pjp.proceed();} catch (Throwable e) {LogWriter.writeErrorLog(e);resultObject.setFailed(ApiCommonEnum.SIGN_EXP.getCode(), ApiCommonEnum.SIGN_EXP.getMessage());result = resultObject;return result;}return result;
}
三:入参过滤器
目的:为了防止服务端XML分析器没有进行适当的数据验证,攻击者可以通过设计特殊的输入,破坏应用程序的运行并执行某些未授权的操作带来的风险,固对请求参数进行过滤转译
实现过程:再验签方法后追加过滤代码片段处理入参过程try {result = pjp.proceed(); // 将try catch 内代码替换如下} catch (Throwable e) {// 环绕切换方法执行后置任务Object[] args = pjp.getArgs();// 获取执行方法的对象Object iptObj = args[0];// 对象转换大神入参包装类ClientIobj<?> clientIptObj = getClientObject(iptObj);// 从包装类获取实际请求参数对象Object data = clientIptObj.getData();// 将入参转json数据String json = JSON.toJSONString(data);// 参数转数组(为了取每一段参数)String[] strArray = json.split(",");// 执行过滤方法将配置需要过滤的参数进行处理String parameterValues = getParameterValues(strArray);// 将转换过后的数据赋值给原始入参对象Object resultData = JSON.parseObject(parameterValues, clientIptObj.getData().getClass());// 利用反射给对象重新赋值Method setReadOnly = clientIptObj.getClass().getMethod("setData", Object.class);// 定义需要赋值的对象Object s = resultData;// 赋值过程setReadOnly.invoke(clientIptObj, s);// 重定义执行方法的对象args[0] = clientIptObj;// 执行后置任务Object ret = pjp.proceed(args);// 转发result请求result = ret;public String getParameterValues(String[] parameter) {// 获取需要进行过滤的入参数量int count = parameter.length;// 初始化返回入参字符串String str = null;for (int i = 0; i < count; i++) {if (!StringUtils.isEmpty(str)) {// 拼接过滤后的入参str += "," + cleanXSS(parameter[i]);} else {// 赋值过滤的入参str = cleanXSS(parameter[i]);}}// 返回拼接且过滤后的入参return str;
} private static String cleanXSS(String value) {value = value.replaceAll("<", "<").replaceAll(">", ">");value = value.replaceAll("%3C", "<").replaceAll("%3E", ">");value = value.replaceAll("\\(", "(").replaceAll("\\)", ")");value = value.replaceAll("%28", "(").replaceAll("%29", ")");value = value.replaceAll("'", "'");value = value.replaceAll("eval\\((.*)\\)", "");value = value.replaceAll("[\\\"\\\'][\\s]*javascript:(.*)[\\\"\\\']", "\"\"");value = value.replaceAll("script", "");value = value.replaceAll("onclick", "");value = value.replaceAll("alert", "");return value;
}
(随带一笔)AOP、过滤器、拦截器执行顺序
过滤器 > 拦截器 > AOP切面 (执行顺序的规则不做描述)
为了既要满足aop的验签,又要满足过滤器的特殊字符过滤,通过过滤器和aop是不可能执行的,所以将过滤器的方法放在验签执行后
四:异常referer请求/登录拦截器
目的:
referer拦截器的作用:攻击者可以构造仅高权限用户才能够进行操作的请求,诱使登录状态的高权限用户点击伪造的链接、图片,从而成功执行非法的请求,以用来执行重要的查看,修改,删除,授权等恶意操作,一般用来防止盗链。
登录拦截器的约束:验证用户登录的token时效性,服务端会对请求的用户信息进行校验,满足时效条件放行否则踢出登录。
实现过程:追加登录referer拦截器
referer拦截器过程
创建 LoginInterceptor 类,继承HandlerInterceptorAdapter
@Service
public class LoginInterceptor extends HandlerInterceptorAdapter {
/**
* 白名单
/
private String[] refererDomain = new String[] { “www.baidu.com”, “xxx.xxx.xx” };
/*
* 是否开启referer校验
*/
private Boolean check = true;
/**
* @title:拦截器开始
* @author:chenpengfei
* @date:2020-04-28
* @param:request
* @param:response
* @param:handler
* @throws Exception
*/
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
if (check) {// 校验请求refererif (!checkReferer(request, response)) {returnErrorMessage(response, BaseEnum.REFERER_ERROR.getCode(), BaseEnum.REFERER_ERROR.getMessage());}}// 校验用户cookieOptCmsLoginUser loginUser = cmsUserService.getLoginUser();if (ObjectUtils.isEmpty(loginUser)) {logout(request, response);returnErrorMessage(response, BaseEnum.COOKIE_USER_NULL.getCode(), BaseEnum.COOKIE_USER_NULL.getMessage());return false;}LogWriter.writeWorkLog("验证用户token有效性 验证的数据:" + loginUser.toString());// 验证tokenif (!cmsUserService.tokenCheck(loginUser, request)) {logout(request, response);returnErrorMessage(response, BaseEnum.TOKEN_OUT_TIME.getCode(), BaseEnum.TOKEN_OUT_TIME.getMessage());return false;}return super.preHandle(request, response, handler);
}private void logout(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException {try {LoginCookieHandle.logout(response);} catch (Exception e) {LogWriter.writeErrorLog("登录拦截logout异常", e);}
}private void returnErrorMessage(HttpServletResponse response, Integer code, String errorMessage)throws IOException {response.setCharacterEncoding("UTF-8");response.setContentType("application/json; charset=utf-8");JSONObject res = new JSONObject();res.put("retcode", code);res.put("retmsg", errorMessage);PrintWriter out = null;out = response.getWriter();out.write(res.toString());LogWriter.writeWorkLog("拦截异常成功返回错误信息 msg:" + res.toString());out.flush();out.close();
}private boolean checkReferer(HttpServletRequest request, HttpServletResponse response) {String referer = request.getHeader("referer");String host = request.getServerName();LogWriter.writeWorkLog("referer请求拦截执行:host=" + host + ";" + "referer=" + referer);// 验证非get请求if (!"GET".equals(request.getMethod())) {if (referer == null) {// 状态置为404response.setStatus(HttpServletResponse.SC_NOT_FOUND);return false;}java.net.URL url = null;try {url = new java.net.URL(referer);} catch (MalformedURLException e) {LogWriter.writeErrorLog(BaseEnum.REFERER_ERROR.getMessage(), e);// URL解析异常,也置为404response.setStatus(HttpServletResponse.SC_NOT_FOUND);return false;}// 首先判断请求域名和referer域名是否相同if (!host.equals(url.getHost())) {// 如果不等,判断是否在白名单中if (refererDomain != null) {for (String s : refererDomain) {if (s.equals(url.getHost())) {return check;}}}return false;}}return check;
}
}
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- 新浪微博基于混合云的PHP服务化与弹性扩容XCOPY艾高贝eb5
从后端来讲,新浪微博可以分为Java和LNMP两大体系,特别是在LNMP方面积累了很多经验。发展初期,新浪微博侧重从性能角度出发,做架构方面的调整和优化。近两年,它投入人力、物力,把重点放在了弹性扩容方面。 本文由在新浪微博工作近七年、现任主站研发负责人的侯青龙分享新时…...
2024/5/9 14:47:58 - 简单的SSM整合,并测试
首先是导入Spring需要导入的包:在resource目录下创建一个spring-config.xml文件使用Spring注解自动注入,需要在spring-config.xml中开启注解扫描<!--开启注解扫描--> <context:component-scan base-package="testbean"/>在testbean包中创建实体类并加上…...
2024/4/18 21:43:10 - 走进京东金融:听过来人谈经验及技术干货XCOPY艾高贝eb5
以「金融科技」定位的京东金融集团成立于2013年10月,逐步构建了供应链金融、消费金融、财富管理、众筹、证券、保险、支付、金融科技以及农村金融九大业务板块。 京东金融CEO陈生强表示,京东金融以数据为基础,以技术为手段,借力京东的场景和用户资源来做金融业务,这是自营…...
2024/5/9 12:52:49 - 部门新来了一个技术总监,禁止我们使用Lombok
我有个学弟,在一家小型互联网公司做Java后端开发,最近他们公司新来了一个技术总监,这位技术总监对技术细节很看重,一来公司之后就推出了很多"政策",比如定义了很多开发规范、日志规范、甚至是要求大家统一使用某一款IDE。但是这些都不是我这个学弟和我吐槽的点,…...
2024/4/23 15:48:02 - ubuntu18.04安装SecureCRT
参考链接:https://blog.csdn.net/idwtwt/article/details/86727895 https://www.cnblogs.com/dying/archive/2013/12/24/3489128.html...
2024/5/9 14:13:34 - spark 报错 while invoking RpcHandler#receive() for one-way message. org.apache.spark.SparkException: C
我的情况是 spark.stop() 忘记写了,写上就好了;...
2024/4/23 15:48:07 - N个骰子的点数和的概率
可以考虑用两个数组来存储骰子点数每一总数出现的次数。在一次循环中,第一个数组中的第n个数字表示骰子和为n出现的次数。那么在下一循环中,我们加上一个新的骰子。那么此时和为n的骰子出现的次数,应该等于上一次循环中骰子点数和为n-1、n-2、n-3、n-4、n-5与n-6的总和。所以…...
2024/5/9 12:51:41 - 数据结构&算法 数组
数组数组是一个容器,可以容纳固定数量的项目,这些项目应为同一类型。大多数数据结构都利用数组来实现其算法。以下是了解数组概念的重要术语。元素 - 存储在数组中的每个项目称为元素。索引 - 数组中元素的每个位置都有一个数字索引,用于标识元素。 在C语言中,当使用size初…...
2024/4/23 15:47:58 - 34.像素化图像悬停特效
效果 (源码网盘地址在最后)视频演示「前端编程实战 34」HTML+CSS3 实现像素化图像悬停特效视频地址一:https://www.bilibili.com/video/BV1ta4y1e7WP 视频地址二:https://www.ixigua.com/i6828497506532327939/ 源码 index.html <!DOCTYPE html> <html lang="e…...
2024/4/23 15:48:05 - docker容器
1.新建容器并启动: [root@localhost~]#dockerrun-itcentos:latest/bin/bash [root@a837f8b605e6/]# -t伪终端-i交互模式 2.退出 (1.)退出后还显示UP状态: Ctrl+p加ctrl+q不要ctrl+p+q (2.)推出后显示exit Ctrl+cctrl+d或者直接命令行exit [root@localhost~]#dockerps-a CONTA…...
2024/4/23 15:47:56 - 学习web前端,这10个学习方式你千万要注意!
1.前言 从事web前端的人很多,每个人的学习方式,学习习惯基本不会一模一样!关于web前端(或者直接互联网),大家都知道,是做到老,学到老的一个行业。之前写文章的时候,我说过很多学习的方式和建议。今天换一下,说一下我个人不建议的学习方式,或者我个人觉得是妨碍进步的…...
2024/4/23 15:48:02 - Mybatis Generator重复生成mapper.xml中代码
升级mybatis-generator-core版本到1.3.7。<!-- MyBatis 生成器 --> <dependency><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-core</artifactId><version>1.3.7</version> </dependency>在…...
2024/4/23 15:47:55 - centos7.5 SELinux is disabled
解决: setenforce: SELinux is disabled那么说明selinux已经被彻底的关闭了如果需要重新开启selinux,请按下面步骤:vi /etc/selinux/config更改为:SELINUX=1必须重启linux,不重启是没办法立刻开启selinux的关闭1 命令查看出selinux的状态 sestatus -v 2 临时关闭 selinux …...
2024/4/23 15:48:00 - java web-11.4Jquery基础案例
案例-隔行换色 需求:将数据行的奇数行背景色设置为pink,偶数行背景色设置为yellow 分析: 1.获取奇数行的tr并设置背景色为pink 2.获取数据行的偶数行的tr,设置背景色为yellow <script>//入口函数$(function () {//1.获取奇数行的tr并设置背景色为pink$("tr:gt(1…...
2024/4/23 15:47:55 - 网络问题博客收藏
转发:从tcp原理角度理解Broken pipe和Connection Reset by Peer的区别Broken pipe错误终极解释...
2024/5/9 1:57:33 - thinkPHP 无法连接数据库 could not find driver
thinkPHP连接数据库时,出现如下报错 1 could not find driver 找不到驱动所致,没有开启相应的拓展。本文以未开启PDO为例。 根据错误提示信息,错误定位到PDO。检测定位错误 使用phpinfo();函数,检查PDO状态。按Ctrl+f,输入pdo。 发现enabled为空:出现以上情况,本文描述两…...
2024/4/17 1:14:17 - CSS实现在竖直方向排列 水平方向居中对齐
<div class="hand"><i class="el-icon-coin"></i><p>测试数据1</p> </div> <div class="hand"><i class="el-icon-copy-document"></i><p>测试数据第2</p> </…...
2024/4/17 1:14:11 - 拦截超星监测考试切屏的方法
适用平台:Android、iOS(未测试) 安装软件:AdGuard(Android)/ Fiddler(Win) 实现功能:超星学习通考试切屏(离开考试)记录不上报,老师端无记录。 底层原理:拦截数据包。 网页考试不存在任何检测,本文只针对客户端研究。本文没什么技术含量,都是软件的基本操作。由…...
2024/4/17 1:14:17 - 红乔资本:推特CEO承诺生前捐出全部财富 目前身价49亿美元
北京时间21日消息,推特CEO杰克-多尔西周四表示,他准备生前就捐出自己的全部财富,而不是像其他一些亿万富豪那样在身后捐出。据福布斯估计,多尔西目前身价49亿美元。 多尔西在与前民主党总统参选人杨安泽的一次直播访谈中说:“我生活的原则是万物都是息息相关的,所以如果有…...
2024/4/18 15:41:02 - 工作3年了,然后呢?(纯个人看法,不喜勿喷)
前言 工作快4年了,一直在写代码,最近也离职了打算自己奋斗一番事业,总结一下自己的工作经历和经验。时常总结自己,也是一种积累。 正言 我刚毕业进的是一家写校园ERP的公司,只干了3个月因为拖欠工资就离职了。毕竟要生活,光让马儿跑不给马儿吃草是不可能的。但是确实是学…...
2024/4/15 7:49:25
最新文章
- springboot项目中前端页面无法加载怎么办
在springboot前后端分离的项目中,经常会出现前端页面无法加载的情况(比如:前端页面为空白页,或者出现404),该怎么办??? 一个简单有效的方法:: 第…...
2024/5/9 17:21:49 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/5/7 10:36:02 - 字符串匹配算法之BF与KMP算法
目录 BF算法(暴力匹配算法) KMP算法 核心思想: next数组 next数组的优化 BF算法(暴力匹配算法) #include <assert.h> int BF(const char* str, const char* sub) {assert(str ! NULL && sub ! NULL);if (str NULL || sub NULL){return -1;}int…...
2024/5/9 7:34:59 - OpenHarmony实战:Combo解决方案之ASR芯片移植案例
本方案基于 OpenHarmony LiteOS-M 内核,使用 ASR582X 芯片的 DEV.WIFI.A 开发板进行开发移植。作为典型的 IOT Combo(Wi-FiBLE)解决方案,本文章介绍 ASR582X 的适配过程。 编译移植 目录规划 本方案的目录结构使用 Board 和 So…...
2024/5/6 16:35:39 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...
2024/5/8 6:01:22 - 【原油贵金属周评】原油多头拥挤,价格调整
原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...
2024/5/9 15:10:32 - 【外汇周评】靓丽非农不及疲软通胀影响
原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...
2024/5/4 23:54:56 - 【原油贵金属早评】库存继续增加,油价收跌
原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...
2024/5/9 4:20:59 - 【外汇早评】日本央行会议纪要不改日元强势
原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...
2024/5/4 23:54:56 - 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响
原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...
2024/5/4 23:55:05 - 【外汇早评】美欲与伊朗重谈协议
原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...
2024/5/4 23:54:56 - 【原油贵金属早评】波动率飙升,市场情绪动荡
原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...
2024/5/7 11:36:39 - 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试
原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...
2024/5/4 23:54:56 - 【原油贵金属早评】市场情绪继续恶化,黄金上破
原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...
2024/5/6 1:40:42 - 【外汇早评】美伊僵持,风险情绪继续升温
原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...
2024/5/4 23:54:56 - 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势
原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...
2024/5/8 20:48:49 - 氧生福地 玩美北湖(上)——为时光守候两千年
原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...
2024/5/7 9:26:26 - 氧生福地 玩美北湖(中)——永春梯田里的美与鲜
原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...
2024/5/4 23:54:56 - 氧生福地 玩美北湖(下)——奔跑吧骚年!
原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...
2024/5/8 19:33:07 - 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!
原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...
2024/5/5 8:13:33 - 「发现」铁皮石斛仙草之神奇功效用于医用面膜
原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...
2024/5/8 20:38:49 - 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者
原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...
2024/5/4 23:54:58 - 广州械字号面膜生产厂家OEM/ODM4项须知!
原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...
2024/5/9 7:32:17 - 械字号医用眼膜缓解用眼过度到底有无作用?
原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...
2024/5/9 17:11:10 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...
2022/11/19 21:17:16 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在iPhone上关闭“请勿打扰”
Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...
2022/11/19 21:16:57