Categories


Tags


常见程序搜索关键字转码

个别搜索类的网站因为用户恶意搜索出现误拦截情况,这类网站本身没有非法信息,只是因为把搜索关键字显示在网页中(如下图)

,可以参考下面方法对输出的关键字进行转码

image.png

DEDECMS程序

本文针对Dedecms程序进行搜索转码,其它程序原理类似:对搜索结果的关键字进行转码后输出

一:查看网站编码,访问后台下面会显示,GBK和UTF8两个版本

image.png

二:复制下面代码到 include/extend.func.php 文件尾部(根据您的网站编码复制对应的代码,编辑网页时推荐使用notepad、editplus软件)

UTF-8编码

function CharCodeAt($str)

{

$strr="";

for($i=0;$i<mb_strlen($str,'utf-8');$i++){

$char = mb_substr($str,$i,1, 'UTF-8');

if (mb_check_encoding($char, 'UTF-8'))

{

$ret = mb_convert_encoding($char, 'UTF-32BE', 'UTF-8');

$strr.="&#".hexdec(bin2hex($ret));

}

else

{

return null;

}

}

return $strr;

}

GBK编码

function CharCodeAt($str)

{

$strr="";

for($i=0;$i<mb_strlen($str,'gb2312');$i++){

$char = mb_substr($str,$i,1, 'gb2312');

if (mb_check_encoding($char, 'gb2312'))

{

$ret = mb_convert_encoding($char, 'UTF-32BE', 'gb2312');

$strr.="&#".hexdec(bin2hex($ret));

}

else

{

return null;

}

}

return $strr;

}

三:修改搜索模板文件templets/default/search.htm  【其它模板可能路径会有变化】

找到: {dede:global name='keyword' function='RemoveXSS(@me)'/}

替换成:{dede:global name='keyword' function='CharCodeAt(RemoveXSS(@me))'/}

四:查看搜索页源代码,查看是否生效

image.png

Discuz 程序,示例针对Discuz!X3.4  GBK版本

一、查看网页编码

1.网页右键查看源代码

blob.png

2.查看config/config.php 的$_config['output']['charset']

blob.png

二、根据编码复制上面的CharCodeAt函数,修改 source/function/function_search.php 文件,加到文件尾部,注意在?> 前面

blob.png

三、修改source/module/search/search_forum.php 程序

在129行添加如下两行代码

$keyword = CharCodeAt($keyword);

$modkeyword = CharCodeAt($modkeyword);

blob.png

四、查看搜索页源代码,检查是否生效

blob.png

来源:西部数码


Public @ 2022-08-05 15:44:44

企业应用网站性能优化实例分析

前段时间对某个企业应用网站进行了一次优化分析,解决这个网站经常死机和CPU高负载的种种问题,根据我接触的一些应用和服务器配置,我对这个案例总结了一些优化方案,用来解决网站的高负载和高并发等问题,这里我和大家分享一下这个案例,希望能和大家一起探讨一下这种解决方案的优劣。一、网站当前状况和性能现状系统硬件配置:CPU为两个Intel Xeon 2.4G,物理内存为2.5G.系统软件配置:操作系统为Wi

Public @ 2019-06-10 15:37:02

NS记录设置方法

一、使用场景如果需要将子域名指定给其他DNS服务商解析,则需要添加NS记录。若您不清楚添加NS记录的结果,请不要设置,以免影响域名解析的正常运行。二、设置方法①.主机名必须填写,且不能为"@"和“*”(NS记录不支持泛解析);②.选择解析记录类型为NS记录;③.记录值填写要授权的DNS服务器域名,请保证其正确性及有效性;④.点击保存,完成设置,等待生效即可。来源:西部数码

Public @ 2021-04-22 15:45:39

微信公众平台Token验证失败问题总结

很多用户在遇到这个问题都怀疑是微信无法访问网站引起的,但在我们处理的过程中实际是程序返回结果异常引起的,请从以下方面检查:1.非正常编辑文件(记事本,在线编辑),导致添加了utf8的bom签名解决:使用多功能编辑器去除bom2.php文件结束符后包含换行或其他字符//文件开始<?php?>//文件结束解决:去除多余的字符3.程序gzip加密异常解决:可取消程序gzip功能4.服务器用户

Public @ 2014-12-10 15:44:43

更多您感兴趣的搜索

0.439041s