本帖最后由 enderman_JC 于 2021-4-13 21:05 编辑
道具名:自证卡?
用途:在使用后输入自己的服务器帖子的tid然后检查自己的服务器帖是否有嫌疑账号(IP相同)(这些都得后端弄,防止破解)
价格:undefined
背包里只能同时存在一个
在使用一次后系统自动再给一个给自己(因为如果设置价格为金粒的话一个普通腐竹可能付不起(爱心更付不起))
或者是价格很低(金粒),然后一天只能买一个
一天只能使用一次
这样个人认为可以有效防止腐竹在不知情的情况下被异常账号顶帖,但是技术方面可能有困难,并且会一定程度上加剧服务器负担(但是我还是发出来看看可不可行罢)
道具名:自证卡?
用途:在使用后输入自己的服务器帖子的tid然后检查自己的服务器帖是否有嫌疑账号(IP相同)(这些都得后端弄,防止破解)
价格:undefined
背包里只能同时存在一个
在使用一次后系统自动再给一个给自己(因为如果设置价格为金粒的话一个普通腐竹可能付不起(爱心更付不起))
或者是价格很低(金粒),然后一天只能买一个
一天只能使用一次
这样个人认为可以有效防止腐竹在不知情的情况下被异常账号顶帖,但是技术方面可能有困难,并且会一定程度上加剧服务器负担(但是我还是发出来看看可不可行罢)
非常支持,不过技术上不知能否实现
支持,听上去是不错的。还要看技术上有没有问题。
支持
至于技术上,有什么能比锁帖还难应该是可行的
至于技术上,
挺支持的
但价格如果是金粒的话就失礼了
肝吐问答版计划√
但价格如果是金粒的话就失礼了
肝吐问答版计划√
本帖最后由 enderman_JC 于 2021-4-13 21:15 编辑
除了金粒以外估计也没什么货币可以用了(
或许是爱心(?)假如是爱心的话如果那时候正在进行问答版活动
远远困了 发表于 2021-4-13 21:01
挺支持的
但价格如果是金粒的话就失礼了
肝吐问答版计划√
除了金粒以外估计也没什么货币可以用了(
或许是爱心(?)假如是爱心的话如果那时候正在进行问答版活动

没必要
还不如直接对楼主放开部分权限,然后通过转码之类的显示同IP顶帖
(话说这种顶不都是同IP的吗?
还不如直接对楼主放开部分权限,然后通过转码之类的显示同IP顶帖
(话说这种顶不都是同IP的吗?
本帖最后由 xmdhs 于 2021-4-13 23:03 编辑
其实 ip 不一定会一样的,不如判断近多少天有无被警告,然后自行判断。
比如这样
复制代码
但是这个对服主有什么用呢。
其实 ip 不一定会一样的,不如判断近多少天有无被警告,然后自行判断。
比如这样
- // ==UserScript==
- // @name 查看顶贴
- // @version 0.0.1
- // @include https://www.mcbbs.net/*
- // @author xmdhs
- // @description 查看顶贴。
- // @namespace xmdhs.top
- // @grant unsafeWindow
- // ==/UserScript==
- (async function () {
- const range = 30 * 24 * 60 * 60
- const r = /<a href="home.php\?mod=space&uid=(\d{1,15})" target="_blank">.{1,15}<\/a>/g
- async function getmod(url) {
- let f = await fetch(url)
- let t = await f.text()
- let uids = new Map()
- for (; ;) {
- let l = r.exec(t)
- if (l != null && l.length == 2) {
- uids.set(l[1], l[0])
- } else {
- break
- }
- }
- return uids
- }
- const time = /\d{4}-\d{1,2}-\d{1,2} \d{1,2}:\d{1,2}/g
- async function warningInRange(uid, range) {
- let f = await fetch(`https://www.mcbbs.net/forum.php?mod=misc&action=viewwarning&tid=233&uid=` + uid + `&inajax=1`)
- let t = await f.text()
- let s;
- for (; ;) {
- let l = time.exec(t)
- if (l != null) {
- s = l[0]
- } else {
- break
- }
- }
- let j = await fetch("https://www.mcbbs.net/api/mobile/index.php?version=4&module=profile&uid=" + uid)
- j = await j.json()
- if (j.Variables.space.posts < 20) {
- return true
- }
- return (new Date() / 1000 - (new Date(s).getTime() / 1000)) < range
- }
- async function sleep(t) {
- return new Promise((rs, rj) => {
- setTimeout(() => { rs() }, t)
- })
- }
- let runing = false;
- async function start() {
- if (runing) {
- alert("已经在运行了")
- return
- }
- runing = true
- let w = unsafeWindow || window
- let tid = w.tid
- let u = new Map()
- let m = await getmod(`https://www.mcbbs.net/forum.php?mod=misc&action=viewthreadmod&tid=` + tid + `&inajax=1`)
- let i = 0
- for (const [uid, _] of m) {
- let b = warningInRange(uid, range)
- u.set(uid, b)
- if (i >= 8) {
- await sleep(1000)
- i = 0
- }
- i++
- }
- let uids = []
- for (const [uid, v] of u) {
- let b = await v
- if (b) {
- uids.push(uid)
- }
- }
- if (uids.length == 0) {
- alert("顶贴的所有用户,近三十天没有被警告")
- runing = false
- return
- }
- let d = document.createElement("div");
- uids.forEach((v) => {
- let u = `<a href="https://www.mcbbs.net/?` + v + `" target="_blank">` + v + "</a>"
- let item = document.createElement("div");
- item.innerHTML = u;
- d.appendChild(item)
- })
- let b = new Blob([d.innerHTML], { type: 'text/html' })
- let url = URL.createObjectURL(b);
- const link = document.createElement('a');
- link.href = url
- link.target = "_blank"
- link.click()
- runing = false
- }
- try {
- let d = document.querySelector("#my16modannouncement > a")
- d.innerText = "查询"
- d.addEventListener("click", (e) => {
- e.preventDefault()
- start()
- })
- } catch (e) {
- console.debug(e)
- }
- })();
但是这个对服主有什么用呢。
xmdhs 发表于 2021-4-13 22:46
其实 ip 不一定会一样的,不如判断近多少天有无被警告,然后自行判断。
比如这样
那些异常账号主要是签到机器人/无脑机器水
同一波这种账号一般都在一个服务器上运行,所以我觉得需要通过IP判断
enderman_JC 发表于 2021-4-13 22:54
那些异常账号主要是签到机器人/无脑机器水
同一波这种账号一般都在一个服务器上运行,所以我觉得需要通过 ...
签到机器人我这可以加一个判断回复数。无脑水总会被发卡。
另外 ip 的成本并不高,(比如说我的账户安全页面都打不开了)如果都是同一个 ip 的话,哪有这么麻烦。
本帖最后由 xmdhs 于 2021-4-13 23:11 编辑
这是现在的效果
查询的是最近末地贴申诉的,被封其实不冤,当然也解封了。
(测试其他服务器版的帖子,没有能出来这么多的)
enderman_JC 发表于 2021-4-13 22:54
那些异常账号主要是签到机器人/无脑机器水
同一波这种账号一般都在一个服务器上运行,所以我觉得需要通过 ...
这是现在的效果
查询的是最近末地贴申诉的,被封其实不冤,当然也解封了。
(测试其他服务器版的帖子,没有能出来这么多的)
感觉不是很必要,原因如下:
1.被陷害是小概率事件(即使真被陷害了也还有申诉途径)
2.仅凭ip判断不准确
3.比对过程占用服务器资源(最近的504已经够多了)
4.对比过程需要调用ip,有无泄露风险?
1.被陷害是小概率事件(即使真被陷害了也还有申诉途径)
2.仅凭ip判断不准确
3.比对过程占用服务器资源(最近的504已经够多了)
4.对比过程需要调用ip,有无泄露风险?
west.myth 发表于 2021-4-14 00:28
感觉不是很必要,原因如下:
1.被陷害是小概率事件(即使真被陷害了也还有申诉途径)
2.仅凭ip判断不准确
并不是仅凭IP,这个道只是让腐竹知道有异常账号顶帖,最终处理还是需要版主决定
关于泄露,我在帖子里说了,都要在后端进行,如果这还能泄露的话那

enderman_JC 发表于 2021-4-13 22:54
那些异常账号主要是签到机器人/无脑机器水
同一波这种账号一般都在一个服务器上运行,所以我觉得需要通过 ...
然而机器人很多都会用7*木棍的,IP满世界跑,查出来也没法锤
xiang_xge 发表于 2021-4-14 06:39
然而机器人很多都会用7*木棍的,IP满世界跑,查出来也没法锤
那种的似乎腐竹不会受到牵连(?)