param

爬虫day6 js加密和混淆的解析

ⅰ亾dé卋堺 提交于 2019-11-26 13:59:47
爬虫day6 关于< https://www.aqistudy.cn/html/city_detail.html 中国空气质量在线监测分析平台 js加密和混淆的解析 刚开始是的日期没有,加载,是因为已经加载完了,换一个日期. 可以看到数据是动态加载的 但是数据加密了 post请求,而且请求的数据也加密了 可能是谷歌浏览器的js没有监听,所以换比较好用的火狐浏览器 事件监听 getData请求数据 找到element(谷歌浏览器)(定义处) 可以看到执行了getAQI和getweather function getWeatherData() { var method = 'GETCITYWEATHER'; var param = {}; param.city = city; param.type = type; param.startTime = startTime; param.endTime = endTime; getServerData(method, param, function(obj) { data = obj.data; if(data.total>0) { dataTemp.splice(0, dataTemp.length); dataHumi.splice(0, dataHumi.length); dataWind.splice(0, dataWind

学习笔记:关于对象属性获取问题

元气小坏坏 提交于 2019-11-26 13:45:32
关于对象属性获取问题 在前端开发的过程中,学到一个新知识点,直接上代码: Html: <form onSubmit={this.handleSubmit}> <select value={this.state.optionValue} onChange={this.handleSelect}> <option value="xy">西柚</option> <option value="pt">葡萄</option> <option value="mg">芒果</option> <option value="yz">椰子</option> <option value="xc">香橙</option> </select> <input type="submit" /> </form> JS: handleSubmit(event) { console.log('you choose:', this.handleOutput(this.state.optionValue)); event.preventDefault(); }; handleOutput(param) { const arrOption = { xy: '西柚', pt: '葡萄', mg: '芒果', yz: '椰子', xc: '香橙', }; return arrOption.param // log:

微信生成二维码 PHP

帅比萌擦擦* 提交于 2019-11-26 13:44:44
<?php /** * Created by PhpStorm. * User: liyiming * Date: 2019/8/8 * Time: 14:23 */ # 生成二维码 class WxTCode{ protected $appid = ''; protected $secret = '';protected $access_tokens = ""; public function __construct($appid,$secret){ $this->appid = $appid; $this->secret = $secret; $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" . $this->appid . "&secret=" . $this->secret . ""; $result = $this->curl_post($url); $this->access_tokens = $result['access_token']; } public function ShowCode(){ $rs = $this->getTemporaryQrcode($this->access_tokens, 123); $ticket = $rs[

上传多张图片到服务器

有些话、适合烂在心里 提交于 2019-11-26 13:22:44
   List<File> imageLists = new ArrayList<>(); File photo1file = new File(getContext().getExternalFilesDir("photos").getPath(), photo1.toFileName()); File photo2file = new File(getContext().getExternalFilesDir("photos").getPath(), photo2.toFileName()); private static final MediaType MEDIA_TYPE_IAMGE = MediaType.parse("image/*"); /** * okHttp post异步请求表单提交 * * @param actionUrl 接口地址 * @param paramsMap 请求参数 * @param fileParamName 图片参数的名字 * @param imageLists 图片参数的列表 * @param callBack 请求返回数据回调 * @param <T> 数据泛型 * @return */ public <T> Call requestPostByAsynWithImageList(String actionUrl, HashMap

feign传输String json串 自动转义 \\ 解决方法

我们两清 提交于 2019-11-26 12:46:53
@RequestMapping(value={"/sysOrgRest/getInfoByOrgIds"}, method={org.springframework.web.bind.annotation.RequestMethod.POST})public void getInfoByOrgIds(@RequestBody String param) { try { log.info("before param is {}",param); if(param.contains("\"")) { param = org.apache.commons.lang.StringEscapeUtils.unescapeJava(param); param= param.replaceFirst("\"", ""); param= param.substring(0,param.length()-1); } log.info("after param is {}",param); JSONObject object = JSONObject.parseObject(param); if (object.containsKey("enterpriseid") && object.containsKey("orgIds")) { List<Long> orgIds = (List<Long>)

spring服务间HTTP调用工具封装 RestTempalate

心已入冬 提交于 2019-11-26 12:27:11
服务间的Http请求,可以用apache的HttpClient,OkHttp,这些都是需要我们手动回收资源,使用起来如果实在spring框架中,则有更优的选择,即:RestTemplate来实现服务间的通讯调用。 RestTemplate提供了常见的post,get等请求。下面是利用RestTemplate来封装Http请求工具类。 代码部分: import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import org.springframework.web.client.RestTemplate; import javax.annotation.Resource; import java.util.Map; @Service public class RestTemplateService { private final static Logger LOGGER = LoggerFactory.getLogger(RestTemplateService .class); @Resource public RestTemplate restTemplate; /** * @Description Post方式调用外部接口 *

绕过主动防御的代码注入方法思考

跟風遠走 提交于 2019-11-26 11:26:15
免杀 Windows Access thread 目前大多数的杀软都是hook NtWriteVirtualMemory和NtUserSetWindowsHookAW、NtUserSetWindowsHookE来防止代码注入。 关于代码注入Ring3层的方法主要有: l 远程线程CreateRemoteThread l 消息钩子SetWindowsHookEx l Ring3 APC QueueUserApc l 修改线程上下文SetContextThread 其中第一种和第三种方法需要传入一个param,但是要求这个param必须在目标进程内存空间,之前的一些方法比较笨重,直接在目标进程VirtualAllocEx内存,然后把希望的参数内容写入这个内存,使用了WriteProcessMemory函数,而这个函数是被hook的,所以杀软可以很容易的拦截代码注入行为。 仔细想想,杀软的这种防御是很失败的!原因是为了要一个param,攻击者完全没有必要做这么大的动作去目标进程内存空间申请内存并写内存,我在思考是否可以不用WriteProcessMemory函数呢?反正我的目的就是得到一个合理的param,并且这个param是在目标进程内存空间即可! 思考后,原来一切是这么容易啊,哈哈!乐了我半天~~~ 举个例子:假设我是这样注入的: QueueUserAPC((PAPCFUNC

java使用WebSocket

和自甴很熟 提交于 2019-11-26 10:16:46
1、业务需求:在学生进行单词练习的页面,左侧有一个全班学生的回答正确单词数量的排名,要求实时的更新,之前使用页面每隔1秒向后台发送请求获取的方式,但是因为之前有其他的轮询,对服务造成的压力太大,所以决定使用websocket,在用户完成一个单词保存时,服务器返回排名列表。 2、WebSocket介绍: WebSocket是基于TCP的一种新的网络协议,最大的特点就是实现了浏览器与服务器全双工(full-duplex)通信,2011年WebSocket协议被接受为国际标准 HTML5开始提供WebSocket协议的支持。 什么叫全双工通讯? 其实就是通信的双方都可以主动发送消息,又可以接受消息.WebSocket协议之前,全双工通信是通过多个http链接来实现,这导致了效率低下。WebSocket的出现就是为了解决这个问题。 3、实现步骤: 1)准备: 测试环境:spingBoot + tomcat7 + jdk8 + chrome浏览器 webSocket的依赖: <!--websocket--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency> 2)后台代码 package com

实时效验ID唯一及提示

半世苍凉 提交于 2019-11-26 10:08:03
输入id即时提示该ID是否可用 <ui-col style="" class="text-right" sm="2" md="2" lg="2"> <label class="control-label animated" uib-tooltip-html="'hello <b>world.</b>'" tooltip-popup-delay="" tooltip-popup-close-delay="" tooltip-placement="top" tooltip-trigger="'mouseenter'" tooltip-enable="false" tooltip-class="">事件id</label> </ui-col> <ui-col style="" class="text-right" sm="4" md="4" lg="4"> <input type="text" class="form-control " placeholder="" ng-readonly="showDetail" ng-required="true" ng-model="param.bus.event_id" ng-change="checkUnique()"> <p class="text-left" ng-show="param.bus.event_id!=undefined"

微擎后台数据分页

*爱你&永不变心* 提交于 2019-11-26 01:44:51
前端页面 直接一个变量 {$pager} 放到最后的位置,自动生成分页 //定义页码 $pindex = max ( 1, intval ( $_GPC [ 'page' ] )) ; //定义记录数 $psize = 30 ; //排序与每页多少条记录 $limit = " ORDER BY id DESC LIMIT " . ( $pindex -1 ) * $psize . ", { $psize }" ; //数据查询条件 $where = ' WHERE uniacid = :uniacid AND type = 1' ; //对应公众号id $param = array ( ':uniacid' = > $_W [ 'uniacid' ] ) ; //根据前面定义的条件查询出总记录数 $total = pdo_fetchcolumn ( 'SELECT COUNT(*) FROM ' . tablename ( 'duson_zzbd_sham' ) . " { $where }" , $param ) ; //数据数组 $notices = pdo_fetchall ( 'SELECT * FROM ' . tablename ( 'duson_zzbd_sham' ) . " { $where } { $limit }" , $param ) ; //分页按钮