浅谈如何保证discuz插件安全
1.非直接执行程序请加上
if(!defined('IN_DISCUZ')) {
exit('Access Denied');
}
2.记得过滤
比如说uid等id需要intval过滤,避免溢出
文字内容需要htmlspecialchars过滤避免内容变形(DZ内为dhtmlspecialchars)
3.查询条件需要写在'和'中间.
这个是为了避免别人使用查询的条件写出溢出内容
4.所有写入mysql的变量必须addslashes
DZ内为daddslashes,如用DZ无须再次过滤,DZ已将所有$_POST和$_GET过滤,并记得在插入时前后带上'
这是为了避免破第3步将变量内带'使第3条无效
再需要选择是否插入某字段时记得不要直接使用传递来的代码而是判断是否选上什么再加上,比如
if($click) {
$front = 'a, b ,c';
$back = "'$a', '$b', '$c'";
} else {
$front = $back = '';
}
然后在下面的插入内可以直接加上$front和$back
查询也类似.
必须记得如果没有将$front和$back为'',这是为了避免让别人利用了.
5.提交内容记得用submitcheck()
避免被别人利用,比如利用[img]代码
6.确保所有变量都有定义,防止被别人利用
DZ一直在改进,启用了很多新的变量也放弃了很多旧的变量,希望大家在转换过程中先了解清楚DZ是否有更改或去除以前的变量.
比如说前段时间的许愿池漏洞就是因为没有定义$discuz_root而被别人利用.
7.extract,eval等函数需要小心使用
不要被别人利用这个覆盖已有变量达到入侵目的
8.写储存文件的时候记得过滤
如果你储存文件的后缀名为PHP或其他可执行文件,记得将开头加上
<?PHP
exit('Access Denied');
?>
9.可上传附件的插件记得限制类型
上传附件,为了防止他人上传可执行文件,必须检查后缀名是否含有可执行文件后缀名,最好不允许此类文件上传,如需上传请将文件名改变.
以下内容转自DZ程序的代码
$attach['attachment'] .= preg_replace("/(php|phtml|php3|jsp|exe|dll|asp|aspx|asa|cgi|fcgi|pl)(\.|$)/i", "_\\1\\2",
substr($filename, , ).'_'.random().'.'.$extension);
10.所有组数在运用前记得写$xxx = array();
这个的原因很简单,为了避免被利用(在地址直接加上&xxx[xxx]=abc即可被利用)
有些插件有可能因为这些原因影响插件安全
浅谈如何保证discuz插件安全的更多相关文章
- 浅谈异步上传插件 jquery-file-upload插件
当我们需要异步上传文件的时候,我们倾向于在网上查找相关的JQuery插件,jquery-file-upload就是我们经常看到的,但是他的主页是英文的,对于我们这些英语比较差的同学来说,简直就是... ...
- 浅谈Excel开发:十一 针对64位Excel的插件的开发和部署
自Office 2010版本开始有了32位和64位之分,对Excel来说,32位的Excel和64位的Excel在性能上的主要区别是64位的Excel能够处理2G及2G以上的大数据集. 随着64位操作 ...
- 【大型软件开发】浅谈大型Qt软件开发(二)面向未来开发——来自未来的技术:COM组件。我如何做到让我们的教学模块像插件一样即插即用,以及为什么这么做。
前言 最近我们项目部的核心产品正在进行重构,然后又是年底了,除了开发工作之外项目并不紧急,加上加班时间混不够了....所以就忙里偷闲把整个项目的开发思路聊一下,以供参考. 鉴于接下来的一年我要进行这个 ...
- 浅谈 js 正则之 test 方法
原文:浅谈 js 正则之 test 方法 其实我很少用这个,所以之前一直没注意这个问题,自从落叶那厮写了个变态的测试我才去看了下这东西.先来看个东西吧. var re = /\d/; console. ...
- 【Unity游戏开发】浅谈 NGUI 中的 UIRoot、UIPanel、UICamera 组件
简介 马三最近换到了一家新的公司撸码,新的公司 UI 部分采用的是 NGUI 插件,而之前的公司用的一直是 Unity 自带的 UGUI,因此马三利用业余时间学习了一下 NGUI 插件的使用,并把知识 ...
- 浅谈React数据流管理
引言:为什么数据流管理如此重要?react的核心思想就是:UI=render(data),data就是我们说的数据流,render是react提供的纯函数,所以用户界面的展示完全取决于数据层.这篇文章 ...
- 浅谈|WEB 服务器 -- Caddy
浅谈|WEB 服务器 -- Caddy 2018年03月28日 12:38:00 yori_chen 阅读数:1490 标签: caddyserverwebhttps反向代理 更多 个人分类: ser ...
- 【转】.NET(C#):浅谈程序集清单资源和RESX资源 关于单元测试的思考--Asp.Net Core单元测试最佳实践 封装自己的dapper lambda扩展-设计篇 编写自己的dapper lambda扩展-使用篇 正确理解CAP定理 Quartz.NET的使用(附源码) 整理自己的.net工具库 GC的前世与今生 Visual Studio Package 插件开发之自动生
[转].NET(C#):浅谈程序集清单资源和RESX资源 目录 程序集清单资源 RESX资源文件 使用ResourceReader和ResourceSet解析二进制资源文件 使用ResourceM ...
- 浅谈 Fragment 生命周期
版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Fragment 文中如有纰漏,欢迎大家留言指出. Fragment 是在 Android 3.0 中 ...
随机推荐
- Laravel 5.2 教程 - 邮件
一.简介 Laravel 的邮件功能基于热门的 SwiftMailer 函数库之上,提供了一个简洁的 API.Laravel为SMTP.Mailgun.Mandrill.Amazon SES.PHP的 ...
- JS基础部分小结
[使用js的三种方式] 1.HTML标签中内嵌JS(不提倡使用) 2.HTML页面中直接使用JS <script type="text/javascript"> JS代 ...
- shop_list
#!/usr/bin/env python # -*- coding: utf-8 -*- #输出商品列表,用户输入序号,显示用户选中的商品 li = ["手机", "电 ...
- WPF 自定义ColorDialog DropDownCustomColorPicker
今天分享一个 WPF 版的ColorDialog,该控件源自 这里,不过笔者已经该控件做了大量的修改工作,以适应自己的产品需求,闲话少说,先看看效果图: 1.DropDownCustomColorPi ...
- HDU_1009_FatMouse' Trade
FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- [刷题]算法竞赛入门经典(第2版) 5-6/UVa1595 - Symmetry
题意:平面上给若干点,问它们是不是关于某垂直于x轴的直线对称. 代码:(Wrong Answer, –ms) //UVa1595 - Symmetry #include<iostream> ...
- Linux Centos 6.5_x86安装Nginx
一.下载 二.编译安装 三.启动.停止.平滑重启 一.下载 地址:http://nginx.org/en/download.html 或者在linux上使用wget命令下载: wget http:// ...
- PL/SQL Developer使用技巧以及快捷键设置
1.类SQL PLUS窗口: File->New->Command Window,这个类似于oracle的客户端工具sql plus,但是比在cmd中的sqlplus好用多了. 2.设置关 ...
- jdk动态代理原理
http://www.cnblogs.com/MOBIN/p/5597215.html 请先查看这边博文 此文主要是在上篇博文的基础之上,宏观的理一下思路,因为之前本人看了上篇之后云里雾里(是本人 ...
- 用css3动画 @keyframes里设置transform:rotate(); 控制动画暂停和运动用属性:animation-play-state:paused暂停,在微信和safari里设置paused无效,在QQ里是正常的
这几天遇到了两个很奇葩的问题,终于找到原因,趁还记得解决方法,赶紧记下来: 用css3动画 @keyframes里设置transform:rotate(); 控制动画暂停和运动可以用属性:animat ...