PubkeyAuthentication yes
#AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2
最后可以禁止密码登录,首先确保密钥登录成功
#PasswordAuthentication no
iHuman Android APP 里面有一些音频资源,直接抓包就可以拿到请求参数,然后直接可以用来请求资源。
由于timestamp没有检验,抓到的请求参数在登录信息没有变更的情况下应该是可以一直使用的,
但是如果你在登录的设备上重新登录或者登录其它账号,那么之前的请求参数就不可用了,需要重新抓包。
Example
{
'uid': '123456',
'app_version': '4.1.0',
'sign': '02049776b9faba39d375e2a44ewgwkqw288sf3sfa6ab16875063d49ad9f0ed494'
'device': 'phone',
'deviceid': '403d8d2wqf32453tre6t34t345yt4ec03a',
'platform': 'Android',
'token': '00MYUISKWU923kjsdfuih3CFzwaw9ku5OAElVvvOg=',
'timestamp': '1611029052'
}
先看一下主要的参数
uid
: 就是用户的唯一ID app_version
: 使用app版本,sign
: 就是使用其它的某些参数,通过一定的加密算法得到的,下面主要讲如何计算该签名 device
: 好像是固定的phone. deviceid
: 每一台设备都会有一个唯一的ID, platform
: 我的是Android, token
: 应该是服务器签发给客户的一个凭证, timestamp
: 就是时间戳 最终我们大概得到这样一张表
Field | value | 8 | 10 | 15 | 27 |
---|---|---|---|---|---|
uid | 1 | ✘ | ✘ | ✔ | ✔ |
deviced | 2 | ✘ | ✔ | ✔ | ✔ |
timestamp | 8 | ✔ | ✔ | ✔ | ✔ |
token | 16 | ✘ | ✘ | ✘ | ✔ |
https://doc.sitecore.com/developers/93/sitecore-experience-manager/en/build-item-and-media-urls.html
https://www.pintle.dk/insights/link-generation-in-sitecore-9-3/
The follow config comes from sitecore showconfig
<!-- URL BUILDERS -->
<!-- URL BUILDERS -->
<links>
<urlBuilder>
<alwaysIncludeServerUrl>false</alwaysIncludeServerUrl>
<languageEmbedding>asNeeded</languageEmbedding>
<languageLocation>filePath</languageLocation>
<lowercaseUrls>true</lowercaseUrls>
<encodeNames>true</encodeNames>
<useDisplayName>false</useDisplayName>
</urlBuilder>
...
</links>
由于所处的网络环境被限制,无法使用Aria2等BT工具下载种子,所以只能使用代理伪装一下
把所有流量都转发到代理服务器上.
默认电脑上已经安装shadowsocks, v2ray等代理软件,并打开了1080(socks5)代理端口,或其它的代理方式.
本篇主角redsocks登场, 首页安装redsocks,这里使用仓库安装sudo apt install redsocks
安装完成以后,默认配置文件:/etc/redsocks.conf
一些常用的命令:
sudo service redsocks start #打开redsocks
sudo service redsocks stop #停止redsocks
sudo service redsocks restart #重启redsocks
sudo systemctl enable redsocks #开机启动redsocks
sudo systemctl disable redsocks #停止开机启动redsocks
https://www.viagle.cn/blog/0015661425086431d7c969c88854e5294d6b8ee4efc3c13000
https://github.com/v2ray/discussion/issues/173
在上一篇里shadowsocks v2ray-plugin websocket tls nginx, 我们介绍了v2ray-plugin的使用方法, 客户端[Client]: shadowsocks + v2ray-plugin , 服务器[Server]: nginx + shadowsocks + v2ray-plugin,
现在把服务器端修改为:nginx + v2ray. 配置文件和之前的v2ray配置稍为有点不同。
如果想用 v2ray做服务器[server], shadowsocks + v2ray-plugin做客户端[client]的话需要在server
v1.mux.cool
,传输协议设置websocket https://github.com/shadowsocks/v2ray-plugin
https://gist.github.com/shuanghua/c9c448f9bd12ebbfd720b34f4e1dd5c6
https://github.com/M3chD09/shadowsocks-with-v2ray-plugin-install
https://github.com/shadowsocks/v2ray-plugin/issues/48
https://github.com/v2ray/discussion/issues/173
从去年开始就一直再使用v2ray+websocket+nginx, 一直都很稳定, 也有可能是人个使用流量比较小, 也是不完全是之前SS(SSR)也是个人使用, 不知道为什么就被封了, 哈哈,
简单说下v2ray使用过程,
bash <(curl -L -s https://install.direct/go.sh)
, v2rayN
也很好使用, 和windows版的$$差不多, 简单配置一下就好了, 以上几个就自动分流效果都不能和SS的GFW列表相比, 今天正好有时间看了一下v2ray-plugin. 有了之前v2ray+websocket+tls+nginx的经验, 这次的配置相对简单.
https://community.sitecore.net/technical_blogs/b/sitecorejohn_blog/posts/repost-overriding-sitecore-39-s-logic-to-determine-the-context-language
https://community.sitecore.net/technical_blogs/b/sitecorejohn_blog/posts/prevent-the-sitecore-asp-net-cms-from-interpreting-url-path-prefixes-as-language-names
今天我们主要说明一下, 如果自定义URL中的语言前缀, Sitecore 默认语言前缀: en
, zh-CN
, zh-TW
, it-IT
...
以简体中文为例: Sitecore默认URL路径中都会包含zh-CN
, http://www.xxx.com/zh-CN/about
把zh-CN
替换为cn
, 访问http://www.xxx.com/cn/about
能够正常显示简体中文页面.
在上篇博客中我们已经实现了此功能, 但是有点复杂, 后来我又做了些尝试,找到了更新简单的方法.
不需要重写LanguageResolver
和 ItemResolver
, 只需要重写StripLanguage
就可以了, LinkProvider
保持不变
我们知道了StripLanguage
pipeline, 它会自动识语言前缀删除并重定向, 我们要做的就是识别自定义语言前缀, 并把它转换为相应的语言,然后再重定向.
实现上面的目标, 要自定义2个pipeline.
Sitecore.Pipelines.PreprocessRequest.StripLanguage
pipeline, 识别自定义语言前缀, 并把它转换为相应的语言,然后再重定向.Sitecore.Pipelines.HttpRequest.LanguageResolver
pipeline. 把客户端请求URL中的cn
转换为zh-CN
语言.已经实现了更简单的方式二, [推荐]
https://community.sitecore.net/technical_blogs/b/sitecorejohn_blog/posts/repost-overriding-sitecore-39-s-logic-to-determine-the-context-language
https://community.sitecore.net/technical_blogs/b/sitecorejohn_blog/posts/prevent-the-sitecore-asp-net-cms-from-interpreting-url-path-prefixes-as-language-names
Sitecore 支持多语言, 确定上下文语言的默认逻辑是使用以下面的变量:
sc_lang
查询字符串参数 web.config
中指定的DefaultLanguage
设置 今天我们主要说明一下, 如果自定义URL中的语言前缀, Sitecore 默认语言前缀: en
, zh-CN
, zh-TW
, it-IT
...
以简体中文为例: Sitecore默认URL路径中都会包含zh-CN
, http://www.xxx.com/zh-CN/about
无头Chrome在Chrome 59中发布。这是在无头环境中运行Chrome浏览器的一种方式。 基本上,运行没有Chrome的Chrome! 它将Chromium和Blink渲染引擎提供的所有现代Web平台功能引入命令行。
那么这个浏览器可以用来干嘛?
想象一下每次在发版前,测试人员都需要测试系统的功能,重复且乏味。于是你决定让程序自动测试界面上的功能。你不需要浏览器有GUI界面,想通过编程的方法来驱动浏览器进行各种操作,并且希望能在服务器端运行,这样每次发版前就可以自动测试相关功能,提高测试效率。
以上只是一个应用场景,Headless浏览器可以理解为没有GUI界面的浏览器程序。由于没有界面,所以在速度上比普通浏览器稍快,它可以在自动化测试、性能检查、获取元数据(例如爬虫)和网页截图等方面发挥用途。
Puppeteer 是一个 Node 库,它提供了高级的 API 并通过 DevTools 协议来控制 Chrome(或Chromium)。通俗来说就是一个 headless chrome 浏览器 (也可以配置成有 UI 的,默认是没有的)
Puppeteer API可用于截取屏幕截图,创建PDF,导航页面以及从页面获取信息等.
Puppeteer API 官方参考链接: https://pptr.dev/, Puppeteer API 中文版参考链接: https://zhaoqize.github.io/puppeteer-api-zh_CN/
Android 手机无法在Google Play下载大型游戏(特指需要附加数据), 总是提示"错误代码: 492". 但下载普通应用和游戏(eg: 海岛奇兵)都没有问题.
在网上找了各种方法[清缓存, 清数据, 进入 Recovery 中清除 Dalvik cache] 都不行.
在一次偶然的机会下, 我发现内存卡的"Android/obb"目录为空且无法创建文件及子目录, 而且该目录修改日期为"1970/02/18"
该目录就是存储游戏附加数据的目录, 如果无法写入那些大型游戏肯定无法安装.