通知设置 新通知
疯子设计:访问链接的流量互带
三叔 发表了文章 • 0 个评论 • 430 次浏览 • 2020-01-02 17:52
这是一个想了很久,从效率和安全方面做出的思考。
大概思路:
1. 记录http请求中的referer(来路网址)
2. 去除搜索引擎和本站的地址(这些一般非常多还没啥用)
3. 在一个展现页面中展现这块数据
这个思路的目的是,A网页放问我的网站后。就会在我的来路展现页里被罗列出来,这样我的部分用户也会引流到A网页。这样实现双向引流。
如果权重高了,想出现在我的展现页里的网站都会在自己的网站或文章里出现我的链接,这样无疑就会增加我的网站外链。外链越多、访问量越大、权重越高。实现一个良性循环。
那设想有了,下面就是设计下如何高效和安全的去操作。
原本设计是这样的:
但是我觉得:按照某些恶意程序员的程序员的尿性,他肯定会将一堆色情、赌博的网址作为referer请求你的网址,这样就会造成你的展示页里出现很多非法网站。这是很可怕的。因为工信部会来查封你的网站。
所以:我决定增加一个域名备案查询的功能。正好把之前开发的网站备案查询的功能对接起来。
所以步骤中多了一个备案查询功能。
但是查询备案是一个非常耗时间的功能,这样会影响网页的打开速度,而且没必要每次都查询。
所以,我继续修改我的脑回路。
恩,这样安全系数应该很高了。下面就是如何更好的优化程序。
我觉得,展示网页的时候,还是不要做过多的操作好。所以我决定,查看网页的时候还是按照第一个脑图来。
下面是最终方案,有两套脑图:1 访问时候的设计 2. 后台异步执行的方案
访问网页的时候 只做referer插入操作,当然,还是要查询下数据库的,如果存在这个referer就忽略了。这里会在memcache中增加link的一个list来减少数据库的读写。
然后启动另一个进程或线程做如下操作,在做这步之前,我决定在referer表里增加一个checked字段,来做域名备案查询标识,防止比如google这类没有备案的域名重复的查询,这个没啥意思。
所以追加下面的脑图配合上面的脑图一起使用。
作者:三叔
文章出处:http://www.sanshu.cn/a/28.html
如果从上面链接点进去,1分钟内就会在 http://www.sanshu.cn/referer/ 看到这篇wecenter的连接
wecenter改的PJAX效果(半成品)
三叔 发表了文章 • 3 个评论 • 603 次浏览 • 2019-12-10 13:36
已经改回非PJAX
PJAX说白了就是通过技术手段进行数据无刷新加载。旨在避免js重复加载。
我改了,但是因为对PJAX还不太熟悉。所以无法做到全站PJAX
目前这三处可以实现无刷新加载。
想了解的可以试试。
需要改法,我也可以公布,虽然目前只是半成品。
wecenter中开启极验验证
三叔 发表了文章 • 1 个评论 • 631 次浏览 • 2019-11-26 12:31
wecenter自3.x后加入了极验验证加大了网站的登录、注册安全,也可以防止机器人灌水。
但是不是所有的页面都有开启极验。所以这里提供下开启的方法。
开启的方法主要有三步。
第一步:加载极验验证的js和css
<script type="text/javascript" src="http://www.xcat.cn/static/js/slide_captcha/gt.js"></script>
.geetest_radar_tip_content{
position: initial !important;
}
第二步: 脚本加载
<?php if ($this->human_valid) { ?>
<script>
var handlerEmbed = function (captchaObj) {
$('#publish_submit').click(function(){
var validate = captchaObj.getValidate();
if (!validate) {
AWS.alert("请先完成验证");
return false;
} else{
AWS.ajax_post($('#question_form'));
captchaObj.reset(); // 调用该接口进行重置
return false;
}
});
// 将验证码加到id为captcha的元素里,同时会有三个input的值:geetest_challenge, geetest_validate, geetest_seccode
captchaObj.appendTo(".embed-captcha");
captchaObj.onReady(function () {
$(".wait").css('display','none');
});
};
$.ajax({
// 获取id,challenge,success(是否启用failback)
url: G_BASE_URL+ "/account/slide_captcha/?t=" + (new Date()).getTime()+"&client_type='web'", // 加随机数防止缓存
type: "get",
dataType: "json",
success: function (data) {
var dataObj = eval('(' + data.rsm + ')');
// 使用initGeetest接口
// 参数1:配置参数
// 参数2:回调,回调的第一个参数验证码对象,之后可以使用它做appendTo之类的事件
initGeetest({
gt: dataObj.gt,
challenge: dataObj.challenge,
new_captcha: dataObj.new_captcha,
offline: !dataObj.success, // 表示用户后台检测极验服务器是否宕机,一般不需要关注
product: "embed", // 产品形式,包括:float,embed,popup。注意只对PC版验证码有效
width: '100%' // 设置按钮宽度, 与父元素宽度一致
}, handlerEmbed);
}
});
</script>
<?php } ?>
第三步:控件代码
<?php if ($this->human_valid) { ?>
<div class="aw-auth-img clearfix">
<div class="embed-captcha pull-right" style="width: 260px;"></div>
<p class="wait pull-right">正在加载验证码......</p>
<!-- <em class="auth-img pull-right"><img src=""
onclick="this.src = G_BASE_URL + '/account/captcha/' + Math.floor(Math.random() * 10000);"
id="captcha"/></em>
<input class="pull-right form-control" type="text" name="seccode_verify"
placeholder="验证码"/> -->
</div>
<?php } ?>
第五步:后台验证:
if(!$this->model('tools')->geetest($_POST)){
H::ajax_json_output(AWS_APP::RSM(null, -1, AWS_APP::lang()->_t('验证码错误')));
}
就可以使用了
转载请保留如下字样
文章作者: 三叔
文章链接: wecenter中开启极验验证
还记得我之前的公众号和工具的思路么?5个月涨粉10W。
三叔 发表了文章 • 3 个评论 • 532 次浏览 • 2019-11-21 12:25
这个思路 之前发了两贴
2019年6月24日 之前在官方群里说的一个设想实现了 当时用户数 3374。
2019年7月24 还记得老夫的吹牛贴么,一个月增粉1万3. 当时用户数 16152
2019年11月21日 也就是今天 我的用户数已经 108099
赞了这么多用户,就想着如何去变现了。
据说我这类垂直用户公众号,10W粉丝,推送一条头篇消息,2000一次。 当然我没接到。
我准备做小程序了。
前阵子刚注册了微信开发者平台,花了300大洋认证。开通了unionid,准备打通线下工具、线上小程序、网站(wecenter)。
再有就是,明年老夫辞职做这事。放弃我终生合同、955工作制,和到手2W的月薪。
---------------------------------------
之前发了几个技术贴,都是我做这事用到的
wecenter里改造扫码登录跳到自己定义的页面里拿到openid
wecenter二开之微信ticket和access_token的获取
wecenter版本升级全部收费
yezi 发表了文章 • 4 个评论 • 504 次浏览 • 2019-11-08 14:06
版本升级全部收费才对。
原因:免费升级,属于官方团队白劳动,还要倒贴钱。不愿意付费的,永远不给你费用,团队还要白干活,这样的做法没有任何意义的,你不赚钱,别人也就不给钱,这不太傻了吗?
反馈下百度编辑器的使用感受
技术-安辰 回复了问题 • 2 人关注 • 1 个回复 • 531 次浏览 • 2019-11-01 08:45
内容审核的用户体验对运营很重要
yezi 发表了文章 • 2 个评论 • 544 次浏览 • 2019-10-31 16:12
对用户端来说:发布问题、文章后,回复问题后,能在前端可以预览效果才行。
因为发布的内容有文字图片,排版效果用户看不到,如何调整呢?
只有一个“确认发起”按钮,用户不知道发布的展现效果啊,建议发布长内容的时候(回复、文章),可以增加一个预览按钮。
对后台端来说
审核的内容,能在前端可以预览效果才行。
看不到发布内容的排版与格式,图片也看不到,怎么决定可以审核过呢?
总结
发布长内容,含有图文混排的内容的时候,前端发布与后台审核同时增加“预览”按钮。
如果能实现远程图片本地化就好了?
yezi 回复了问题 • 3 人关注 • 2 个回复 • 578 次浏览 • 2019-10-29 20:03