<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>失效/过期 &#8211; Berd&#039;s Playground (Deprecated)</title>
	<atom:link href="/categories/outdated/feed/" rel="self" type="application/rss+xml" />
	<link>/</link>
	<description>Won&#039;t receive any further updates.</description>
	<lastBuildDate>Tue, 29 Jun 2021 01:02:56 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.8</generator>

<image>
	<url>/wp-content/uploads/2019/05/icon.png</url>
	<title>失效/过期 &#8211; Berd&#039;s Playground (Deprecated)</title>
	<link>/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>解决新版 Chromium 绕过LSP代理软件(如 Proxifier)</title>
		<link>/archives/get-rid-of-chromium-lsp-bypass/</link>
		
		<dc:creator><![CDATA[FENGberd]]></dc:creator>
		<pubDate>Fri, 04 Oct 2019 12:45:06 +0000</pubDate>
				<category><![CDATA[失效/过期]]></category>
		<category><![CDATA[踩坑]]></category>
		<category><![CDATA[迷の代码]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Chrome]]></category>
		<guid isPermaLink="false">/?p=355</guid>

					<description><![CDATA[0x00 前言 Proxifier 新版已升级到 WFP 框架进行代理，本文已过期 本文为流水账形式, 查看解决方案请 点这里 时间过的真快呢, 不知不觉高考完的第一个国庆就来了. 有了5天的长假, 我又想起来 Chromium-EyeProtect 更新的事情了(上次更新是四个月前, 看到 README.md 的图了么).不过, 用几天完成更新赶上最新的 v77.0.3865.90 (Stable) 后却出现了我意料之外的情况&#8230; Proxifier 居然不能正常代理 Chromium 的流量了. 具体表现是连 Verbose Log 都无法看到任何关于 chrome.exe 的信息, 就像 Chromium 直接绕过了 LSP 去访问互联网一样&#8230; 排除 Proxifier 的问题后, 我还是不太甘心就这样放弃掉 Proxifier, 于是就有了下面这一堆踩坑和这篇 Blog . 0x01 初步分析 查了部分 LSP 的资料后, 我的第一感觉是 Chromium 在创建 Socket 的时候是不是加了什么大魔法, [&#8230;]]]></description>
		
		
		
			</item>
		<item>
		<title>给 ZXDA 加了个 ServiceWorker, 效果似乎还不错呢</title>
		<link>/archives/add-serviceworker-to-zxda/</link>
		
		<dc:creator><![CDATA[FENGberd]]></dc:creator>
		<pubDate>Sat, 22 Apr 2017 13:46:06 +0000</pubDate>
				<category><![CDATA[失效/过期]]></category>
		<category><![CDATA[迷の代码]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[ServiceWorker]]></category>
		<category><![CDATA[ZXDA]]></category>
		<guid isPermaLink="false">/?p=139</guid>

					<description><![CDATA[最近在 DIYGOD大佬的博客 看到了ServiceWorker这个东西: 这等神器怎么能不赶紧加上呢 查找了 一些资料 然后参考了一下 这个博客 提供的JavaScript脚本后,终于用一下午折腾出来一个JS,如图 这个JS是基于我们站的实际情况修改的,主要是对HTML页面的离线请求与ajax离线请求做了一些优化 添加这个脚本后,网站访问速度确实得到了一定的提升,并且访问过的部分页面也可以离线访问了: 当然,对于离线状态下访问没有缓存的页面也有相应的措施: 在此放上URL: https://pl.zxda.net/sw.js 欢迎使用哦~ 建议使用前针对自己的网站做一些修改,下面解释一下这几个配置项: 这是之前的JS中就有的一些缓存设置 const offlineResources=[ // ↓无论如何都要缓存一下首页,主页都访问不了会很尴尬 '/', // ↓缓存提示缓存不存在的页面 '//static.zxda.net/offline/page.html', // ↓这是ajax页面的返回数据,&#60;s&#62;假装服务器返回了一个失败信息&#60;/s&#62; '//static.zxda.net/offline/ajax.html', ]; 不缓存的匹配表达式,根据网页中用到的各种请求配置 const ignoreFetch=[ /https?:\/\/seal.godaddy.com\//, /https?:\/\/.*.cnzz.com\//, /https?:\/\/.*.googleapis.com\//, /https?:\/\/.*.gstatic.com\//, ]; 这似乎是DIYGOD自己加上的,我稍微修改了一下 const offline={ // ↓图片不解释 img: '', // ↓普通HTML页面访问不了的提示 page: '//static.zxda.net/offline/page.html', // ↓ajax失败的离线数据 ajax: '//static.zxda.net/offline/ajax.html', }; 这块是自己加上的恩,被这些正则匹配到的是特殊路径 const specialUrls={ // ↓被这个匹配到的就当作ajax请求处理 ajax: /https?:\/\/pl.zxda.net\/ajax\// [&#8230;]]]></description>
		
		
		
			</item>
		<item>
		<title>在 Chrome 中加载企业支付宝的数字证书</title>
		<link>/archives/load-alipay-cert-in-chrome/</link>
		
		<dc:creator><![CDATA[FENGberd]]></dc:creator>
		<pubDate>Fri, 10 Feb 2017 05:48:16 +0000</pubDate>
				<category><![CDATA[失效/过期]]></category>
		<category><![CDATA[踩坑]]></category>
		<category><![CDATA[迷の代码]]></category>
		<category><![CDATA[Chrome]]></category>
		<guid isPermaLink="false">/?p=121</guid>

					<description><![CDATA[我们都知道,支付宝是一个商业公司,Google是一个科技公司 ** 2019年以来,Google连Do no stupid都做不到, 根本不是以前的Do no evil. 上面那句话仅针对Do no evil的Google 🙂 当支付宝开发跟不上Chrome的进步速度时就会出现&#8221;当前操作环境不支持支付宝控件&#8221;这种尴尬的情况(国内大部分银行也这样- -): 如果你一路点进帮助中心,就会发现官方说法中数字证书是不支持Chrome甚至不支持IE11的 本文提供一种方式,让Chrome强行安装数字证书并正常使用(仅在x86机器上测试,x64不确定)首先,通过User-Agent修改插件将UA修改为IE10 刷新即可看到提示安装数字证书控件的页面 点击后下载并安装支付宝数字证书控件,然后重启浏览器(图略)接下来再次回到此页面(别忘了打开UA修改)就可以正常进行证书安装了(依然没图)需要注意的是提示是否进行证书安装那个对话框好像会跑到Chrome下面,注意看着点任务栏,不然还以为一直卡在安装上&#8230; 安装成功后,别急着兴奋,现在数字证书可以正常用一段时间,但你重启浏览器后就会出现无法检测到数字证书的情况,而手动点进管理页面后就会提示已安装数字证书然后证书又可以用了&#8230; 我们总不可能每次都点进这个页面一次吧 &#8211; -那样很累的 因此我写了这个插件:AlipayHelper.zip zip中包含了打包好的crx文件和源码,如果碰到提示&#8221;无法添加来自此网站的应用,程序和用户脚本&#8221;可以尝试直接将扩展程序拖到 chrome://extensions 这个界面,新版Chrome中加载插件后无法启用的解决方案可以参考 这篇博客 ,加载完毕后退出支付宝并重新登录应该就可以正常使用了 插件原理:首先这个插件注册了一个onBeforeRequest的Listener来拦截跳转到&#160;https://authzth.alipay.com/login/certCheck.htm?goto=(这里是目标地址) 的请求,通过这个请求得到下一步跳转的目标地址(从goto=这里用正则表达式匹配) chrome.webRequest.onBeforeRequest.addListener(function(request) { if(request.method=='GET') // 支付宝对这个URL的操作有两步,第一步带着goto=进行GET请求,下一步由GET得到的页面进行POST请求 { var match=request.url.match(/(^&#124;\?&#124;&#38;)goto=([^&#38;]*)(&#38;&#124;$)/); // 正则匹配 if(match) { jump_url=unescape(match[2]); // 设置要拦截的地址 } } }, { urls: [ 'https://authzth.alipay.com/login/certCheck.htm*' ] },['blocking']); 接下来在另一个Listener里拦截目标地址 [&#8230;]]]></description>
		
		
		
			</item>
		<item>
		<title>给 Chrome 添加非应用商店扩展程序的正确姿势</title>
		<link>/archives/add-third-app-to-chrome/</link>
		
		<dc:creator><![CDATA[FENGberd]]></dc:creator>
		<pubDate>Sun, 22 Jan 2017 08:37:06 +0000</pubDate>
				<category><![CDATA[失效/过期]]></category>
		<category><![CDATA[踩坑]]></category>
		<category><![CDATA[Chrome]]></category>
		<guid isPermaLink="false">/?p=104</guid>

					<description><![CDATA[从2018年(具体Chrome版本未知)开始此方法已失效,即使添加了信任安装源也无法正常启用拓展. 请参阅 这篇博客 获取在 2021 年 (v77+) 有效的方法. 从Chrome 30+开始,非应用商店的拓展就无法正常启用了,比如 那么,如何正确的启用这些拓展呢? Google Support给出了一个方案: 如果需要使用某个已停用的扩展程序，您可以联系该扩展程序的开发者，让他们将该扩展程序上传到 Chrome 网上应用店。这样，您和其他 Chrome 用户便可通过 Chrome 网上应用店来安装该扩展程序；或者，如果您已经安装了该扩展程序，则可手动从您的扩展程序列表中重新启用它。 Google Support 很显然这个方法不是很好用, 如果修改了别人的拓展, 更是不可能(也不应该)挂到应用商店去. 但也不是完全没有办法,可以通过在Chrome的应用白名单里添加appid实现此目的 首先,通过 这篇帮助文档&#160;我们可以找到&#160;Chrome管理模板的下载地址 下载后,在windows\adm\系统语言(其他语言也可以,不过可能会存在编码问题/和系统整体风格对不上之类的问题) 这个文件夹内找到对应的管理模板 将chrome.adm解压到任意位置,打开组策略(gpedit.msc,没有的话自己想办法解决咯)并右键点击计算机配置-&#62;管理模板一项并选择[添加/删除模板] 在新窗口中选择添加一项,找到刚才解压出来的chrome.adm并添加进去 添加成功后应该是这个样子的 此时就可以关闭窗口并删掉adm文件了(注:此处如果组策略管理器卡住未响应,可以强制关闭并重新打开,模板应该已经添加好了) 接下来找到 经典管理模板(ADM)\Google\Google Chrome\扩展程序 文件夹中的 &#8220;配置扩展程序安装白名单&#8221; 双击此项,选择&#8221;已启用&#8221;并点击&#8221;显示&#8230;&#8221; 接下来在 扩展程序管理页面 (chrome://extensions/) 中找到你要添加的应用ID 将此应用ID复制到刚才打开的&#8221;显示内容&#8221;对话框里并点击确定 然后关掉组策略配置,刷新扩展管理页面即可启用第三方应用 话说Chrome很多地方是为大部分用户着想的,但对喜欢折腾的developers来说好像有点不太友好]]></description>
		
		
		
			</item>
		<item>
		<title>某投票站的糟糕设计,直接把考试答案发到前端&#8230;</title>
		<link>/archives/a-survey-platform-with-terrible-design/</link>
		
		<dc:creator><![CDATA[FENGberd]]></dc:creator>
		<pubDate>Sat, 10 Dec 2016 11:43:45 +0000</pubDate>
				<category><![CDATA[失效/过期]]></category>
		<category><![CDATA[迷の代码]]></category>
		<category><![CDATA[Javascript]]></category>
		<guid isPermaLink="false">/?p=23</guid>

					<description><![CDATA[这事情是这么开始的 2016-12-10晚上,某人给我发了这么个玩意 由于实在是闲得慌&#160;在好奇心的驱使下我就刨到了这么个玩意&#160;你说你一个问卷平台搞啥考试系统啊 然后我好奇的点进去看了看,按照这类网站的尿性来看肯定会有一些莫名其妙的设计 比如这是什么 马上研究了下这坨玩意,发现了神奇的东西_(:з」∠)_ 恰好和选项数量一样,并且还刚好4个选项中一个是true其他都是false,看起来似乎是答案呢于我是打开Developer Tools试了一下 var data=qstr.split('¤'); data.shift(); data.forEach(function(val) { val=val.split('§'); console.info(val) }); 怎么看都像答案啊喂 最后经过多个问卷的研究,半自动答题代码get√ var data=qstr.split('¤'); data.shift(); data.forEach(function(val) { val=val.split('§'); switch(val[0]) { case 'check': case 'radio': var info=new Array(); for(var i=12;i&#60;val.length;i++) { val[i]=val[i].split('〒'); if(val[i][0]=='true') { if(val[0]=='check') { info.push(i-11); } else { $('q'+val[1]+'_'+(i-11)).click(); } } } if(val[0]=='check') { console.info('ID:'+val[1]+'['+info.join(',')+']'); } break; } [&#8230;]]]></description>
		
		
		
			</item>
	</channel>
</rss>
