当前位置

MediaWiki隐形匿名用户留言的IP地址

James Qi 在 2018年8月2日 - 14:41 提交

  2016年11月为了宣传我们的IP查询网站,添加了“Drupal网站中显示留言者的IP地址”功能,MediaWiki站也通过修改相关程序来实现,但有用户反映不希望自己的IP地址暴露出来,特别是在查号吧这个网站,一些曝光骗子号码的匿名用户更是不愿IP暴露、引起可能的打击报复麻烦。

  今天去进行了两个修改,一个是正常的页面显示中把IP地址后两位数字屏蔽,这是通过修改includes/OutputPage.php来实现的:

public function addHTML( $text ) {
//jamesqi 2018-8-1 用户反映不想自己的IP显示,特别是骗子号码曝光类的,怕报复!改为显示前面两个数字,隐藏后面两个数字
        $ip = "(\d{1,3}\.\d{1,3})\.\d{1,3}\.\d{1,3}";//"\d+\.\d+\.\d+\.\d+";
        $part1 = "--<a href=\"\/[^\/]*\/";
        $part2 = $ip;
        $part3 = "\" title=\"[^\/]*\/";
        $part4 = $ip;
        $part5 = "\">";
        $part6 = $ip;
        $part7 = "<\/a>";
        $pattern = "/($part1)$part2($part3)($part4)($part5)($part6)($part7)/i";
        $replace = "--$2.*.*";
        $text = preg_replace($pattern, $replace, $text);
        //add end
$this->mBodytext .= $text;
}

  在这里用了正则表达式匹配显示的IP内容,然后只显示前两位数字,后面两位替换为*.*。

  另外用户也反映历史页面带有IP地址显示,我们也通过修改includes/actions/HistoryAction.php这个文件来解决:

......
$s .= " $link";
$s .= $dirmark;
//jamesqi 2018-8-1
// $s .= " <span class='history-user'>" .
// Linker::revUserTools( $rev, true ) . "</span>";
//example: <a href="/%E7%89%B9%E6%AE%8A:%E7%94%A8%E6%88%B7%E8%B4%A1%E7%8C%AE/61.184.226.114" title="特殊:用户贡献/61.184.226.114" class="mw-userlink mw-anonuserlink">61.184.226.114</a>
$linker = Linker::revUserTools( $rev, true );
$ip = "(\d{1,3}\.\d{1,3})\.\d{1,3}\.\d{1,3}";//"\d+\.\d+\.\d+\.\d+";
        $part1 = "<a href=\"\/[^\/]*\/";
        $part2 = $ip;
        $part3 = "\" title=\"[^\/]*\/";
        $part4 = $ip;
        $part5 = "\" class=\"mw-userlink mw-anonuserlink\">";
        $part5 = "\"[^>]*>";
        $part6 = $ip;
        $part7 = "<\/a>";
        $pattern = "/($part1)$part2($part3)($part4)($part5)($part6)($part7)/i";
        $replace = "$2.*.*";
        $linker = preg_replace($pattern, $replace, $linker);
$s .= " <span class='history-user'>" .
$linker. "</span>";
$s .= $dirmark;
......

  这也是用的与前面一样的办法进行正则表达式查找和替换,让整个History页面中的IP地址不显示后面两位,也不带有链接了。

  这种直接修改MediaWiki源代码的办法不规范,但简单易用。

自由标签:

添加新评论

Plain text

  • 不允许使用HTML标签。
  • 自动将网址与电子邮件地址转变为链接。
  • 自动断行和分段。