分类 夏季八乱说 下的文章

这段时间在捣鼓tars框架,去vultr开了个3.5刀的机器,为什么要用他们家的呢,因为之前冲的50刀没用完😂无奈呀

他家的机器对湖北电信非常不友好,创建必须要装bbr不然丢包够你受的,加大发包量,用的还挺爽的

这两天空闲了下,上线登陆发现有1w+的暴力登陆!!!

wtf!

network-attacks.png

第一次感受到这么泛滥的网络攻击,今天简单介绍一下修改sshd监听端口防范暴力破解

这里我开始就把selinux关掉了,你可以选择关闭selinux,因为会少很多麻烦事,当然也会产生隐形的问题,不过利大于弊

系统版本

  • 发行版: CentOS Linux release 7.5.1804 (Core)
  • 内核: kernel-ml-4.19.6-1.el7.elrepo.x86_64

起步

  1. 检查selinux的开启状态

    $ /usr/sbin/sestatus -v
    # 看到disabled说明是关闭的,直接看第三步
  2. 关闭selinux

    # 临时关闭(推荐)
    $ setenforce 0
    # 永久关闭
    $ vim /etc/selinux/config
    # 修改为SELINUX=disabled,注意这里需要重启生效

- 阅读剩余部分 -

疑问

如果之前做过微信jssdk,初看文档会发现没有什么,流程无非就是后端签名,返还给前端

但是仔细想了想,没有配置物品的价值信息呀,在公众号h5页面也只是返还了签名

回头看看请求参数发现了端倪

微信订单id

一开始看示例值我理解的随便一串数字,其中的prepay_id统一下单接口返回结果中的参数

重新开始书写逻辑

在这里我们使用的是h5支付,返回结果为 https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb?prepay_id=wx151809054027204613d0ca330422xxxxxx&package=287231xxxx

只能采用截取url的方式了,获取到的prepay_idwx151809054027204613d0ca330422xxxxxx

prepay_id发回后端进行签名,返回

{
  "code": 1,
  "msg": "获取微信浏览器支付签名成功",
  "data": {
    "appId": "wx54c4e3c9a7xxxxxx",
    "timeStamp": "1537007685",
    "nonceStr": "5b9ce0458db30",
    "package": "prepay_id=wx151809054027204613d0ca330422xxxxxx",
    "signType": "MD5",
    "paySign": "A819D6551E9E3FE62BE612FA96000000"
  }
}

现在前端就可以愉快的使用WeixinJSBridgeJSSDK


相关链接:

微信内H5调起支付
微信统一下单

出现invalid signature错误的情况真的很迷

  1. 文档最开始说不需要转义,后来我看到错误相关,说需要encodeURIComponent(location.href.split('#')[0])
  2. wx.config()中的nonceStr与后端进行签名时的noncestr不一样
  3. 动态获取url这个地方描述的很迷,没明确说明是需要使用后端提供签名的接口还是,前端发起请求时的url

总之就是,要使用ajax签名,前端需要encodeURIComponent(location.href.split('#')[0])将当前url作为参数,传入后端签名接口,后端如果是php,需要urldecode($_GET['url']),再来获取jsapi_ticket进行签名,返回参数

貌似联璧金融要倒了,去年上的k3车,还有1000多没出来。

希望不是618卖7亿多,带着小姨子跑路了。。。

2018.06.26 150块还在提现中,不抱太大希望了...
2018.07.20 APP还能打开...

已经不行了哟

前几天的沙龙bug,相信很多人都去蹭了,然鹅我就在旁边静静的看着你们翻车

今天我告诉你们领首页新出的活动,云数据库mysql入门机型买3年,点进页面里购买时长最多只有6个月(感觉不够呀)

查看了下订单提交信息,成功购买了3年
购买成功

将下面代码复制,保存为html文件,打开页面点击链接跳转,即可购买

<a id="get-mysql" href="#">点我领取</a>
<form action="https://buy.cloud.tencent.com/order/check" method="post" style="display:none">
    <textarea name="itemDetails">{"raw_goodsData":[{"type":"cdb","goodsCategoryId":"100016","regionId":4,"projectId":0,"zoneId":200001,"goodsDetail":{"pid":12074,"timeSpan":36,"timeUnit":"m","subType":"CUSTOM","payType":0,"mem":256,"disk":50,"cdbMem":256,"cdbVolume":50,"vpcId":0,"subnetId":0,"zoneId":200001,"type":"cdb","cdbInstanceType":"CUSTOM","mysqlVersion":"5.6","devClass":"Z3","action":"applyCdb","curDeadline":"0000-00-00","instanceRole":"master","projectId":0,"goodsNum":1,"payMode":1,"saleByZone":1,"productInfo":[{"name":"实例类型","value":"主实例"},{"name":"计费模式","value":"包年包月"},{"name":"配置类型","value":"高IO版"},{"name":"配置","value":"256MB内存,50GB存储空间,MySQL5.6"},{"name":"地域","value":"华东地区(上海)"},{"name":"可用区","value":"上海一区"},{"name":"所属网络","value":"基础网络"},{"name":"项目","value":"默认项目"},{"name":"数据复制方式","value":"异步复制"}],"protectMode":0,"deployMode":0,"slaveZone":0,"backupZone":0,"originate":""},"goodsNum":1,"payMode":1}]}</textarea>
</form>
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
<script>
    $('#get-mysql').click(function () {
        $('form').submit()
    })
</script>

真的是哇的一声哭出来了(´;ω;`)

在自己的git站上花Q了一下某内容审查系统,居然真的被ban掉了!!!

我迅速检查机器ip,没有被连坐,真是太好了( ´_ゝ`)

但是我买的十年短号域就这样被ban了我不甘心呀(╯‵□′)╯︵┴─┴

谷歌大法了一下,解决方法大概就4种,如果大佬还知道有什么抢救办法也可以告诉呀 (´▽`ʃ♡ƪ)"

解决方法

  1. 把域名切换至国内dns解析
  2. 去备案(备...备nmlgb的案)
  3. 换域名(走开)
  4. 找个大厂IP给域名做A记录,接下来听天由命

第一种解决不生效,pass

第二种和第三种不予采用,pass

抱着希望只能使用第四种方案,听天由命了

时间线

  • 2018.3.2 开始被墙
  • 2018.3.3 持续中...
  • 2018.3.4 持续中...
  • 2018.3.5 持续中...
  • 2018.3.6 出现好转
  • 2018.3.7 已经有4个节点解析到企鹅爸爸的IP了_(:3 」∠ )_
  • 2018.3.8 (,,゚Д゚)开心,已经有13个节点回来了
  • 2018.3.9 (´ー`)变成9个了,期待的第4天
  • 2018.3.10 凉了半截
  • 2018.3.11 (´ー`)一首凉凉送给我

近期在学习laravel的使用

以前听说过,当时自己不知道为什么对thinkphp着魔,上手停不下,中文文档写的很好让国人理解,我也就是这其中的国人,那个时候thinkphp5还在测试阶段,有点小关注,发现与原来的使用差距有点大,没有继续看了(因为我懒吧?)

使用thinkphp之前,还有段时间学习过CodeIgniter俗称CI,是真的很小巧,小巧到很尴尬的境地,具体

当然,由于它的小巧再实现一些微型项目时,用用还是挺方便的,使用要求也没什么,基本就是上传即可开始使用。

因为我懒,于是就有放弃CI使用thinkphp的历史痕迹了

最近接触了laravel大家说的优雅是有其它的道理的

  1. 使用composer来管理依赖,抛弃手动require
  2. 结合php命令行操作
  3. 清晰有条理的路由管理
  4. 目录命名用意一目了然
  5. Eloquent ORM
  6. 查询构造器
  7. 结合bootstrap做成小demo非常快速(5.4修改源码可以使用bootstrap4相关)
  8. 目前我使用后的特性,还有许多我还没接触到的特性...

就在这些学习的过程中,感觉自己是可以有一定能力开发的

但是!!!深刻的感受到自己的基础知识脆弱不堪,理论体系非常不完善,缺口巨大

如:自己以前文章的内容有一长串字符串的出现,由于其中夹杂着中英文,做出的截取不能使用substr(),而要使用 mb_substr(),但是这里的bug是中文是3个字符(使用的utf-8编码),英文只占1个字符,对中英文混合输入的bug必然是会出现乱码的。

"这是一段abc字符串123大家壕"

使用 strlen() 与 mb_strlen() 结果

echo strlen("这是一段abc字符串123大家壕");
// 输出  36
echo mb_strlen("这是一段abc字符串123大家壕");
// 输出  16

使用 mb_substr() 截取前6个字符

echo mb_substr("这是一段abc字符串123大家壕", 0, 6);

当然你会说,这个没有问题好嘛,substr() 就是把每个字*3了

是的,没有错,但是这一切的前提下,全部是utf-8的编码集

echo mb_substr("这是一段abc字符串123大家壕", 0, 6, "gbk");
// 这是一��

这个小例子的实现让我简单的思考了一下接下来的学习进展,放慢脚步,深入的学习语言现有所带来的特性,充分利用自带功能,何必在自造轮子(我想我造出来的轮子应该是没有自带的好用的)

潜心,静气,思考

--------------------- 分割线 ---------------------------

另外 mb_strcut() 对比 mb_substr() 还是感觉好用点,精确到字节操作

This page loaded in 0.000933 seconds