当前位置: 首页 > news >正文

常见程序搜索关键字转码

个别搜索类的网站因为用户恶意搜索出现误拦截情况,这类网站本身没有非法信息,只是因为把搜索关键字显示在网页中(如下图),可以参考下面方法对输出的关键字进行转码

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

原文链接:https://www.west.cn/faq/list.asp?unid=1952 

http://www.lryc.cn/news/128132.html

相关文章:

  • 细谈商品详情API接口设计
  • Go 1.21新增的内置函数(built-in functions)详解
  • 【云原生,k8s】基于Helm管理Kubernetes应用
  • 字符设备驱动分布注册
  • 在Gazebo中添加悬浮模型后,利用键盘控制其移动方法
  • Java设计模式 (一) 模板方法设计模式
  • PHP在线客服系统推荐
  • (三)行为型模式:3、解释器模式(Interpreter Pattern)(C++示例)
  • Zookeeper 启动闪退
  • jenkins 安装nodejs 14
  • K8S核心组件etcd详解(上)
  • STM32存储左右互搏 I2C总线FATS读写EEPROM ZD24C1MA
  • 微服务—远程调用(RestTemplate)
  • Fine tune简介
  • centos nginx配置ipv4和ipv6的地址都可以访问同一个网站
  • 高教杯数学建模2020C题总结
  • Swagger
  • Android 13像Settings一样获取热点和网络共享
  • 操作系统搭建相关知识
  • 【校招VIP】前端校招考点之vue底层特性
  • vue3+vite配置vantUI主题
  • C++基础语法——继承
  • vim配置之spf13-vim
  • Azure如何启用网络观察应用程序
  • 分步注册方式 编写驱动
  • repmgr出现双主,并且时间线分叉,删除了最新的时间线节点
  • ThinkPHP中实现IP地址定位
  • 使用Python批量将Word文件转为PDF文件
  • XDR解决方案成为了新的安全趋势
  • 001-Nacos 服务注册