曲奇饼 发表于 2019-10-20 01:30:18

DZ二开审核常见驳回理由

01. 请使用 avatar($_G[‘uid’]); 生成用户头像地址 , 不能自己生成;      具体用法是 第一个参数填写UID 第二个参数为空 第三个参数为真{avatar($_G['uid'],'',1)}02. 请使用 getuserprofile($field); 获取用户积分 , 不能自己查表; 03. 补充 $field 参数为 extcredits1 或者用户的其他扩展属性;       此函数,提供一个参数,内容为用户的字段名,即可返回出来他值的内容如:我要获取用户威望::getuserprofile('extcredits1')金钱: getuserprofile('extcredits2')贡献:getuserprofile('extcredits3')用户uid:getuserprofile(uid') 听从:getuserprofile('follower ')收听:getuserprofile('following ')主题:getuserprofile('threads')
04. 判定管理员可以使用$_G[‘adminid’]==105. 读库后有没有值要写判定;06. 跨站防护措施:    显示前 => dhtmlspecialchars() 过滤适用于SQL中字符串数据显示在页面之前 , 如不过滤则存在 XSS 跨站脚本攻击漏洞。   入库前 =>如数字型 ID 执行 intval(),字符串数据执行 daddslashes(),07. 设计数据库时应当设置常用查询条件为索引 , 以提高效率;08. 在PHP 7.1 中自定义函数的参数没有默认值使用时又没有传值的时候会报错;09. 应用介绍中不能出现 “第一” “永久” “无敌”等字眼;10. 安装升级等脚本如果要适应安装网站前缀的使用 cdb_ 代替前缀即可;

袖白雪 发表于 2020-1-2 13:44:22

11. 请使用 $_GET 或 $_COOKIE 代替已废弃的 $_G 和 getgpc() 获取 GET/POST/COOKIE 变量数据;12. 写插件时候尽量使用语言包而不是直接将文字UTF8编码后写入PHP文件;
13. 关于JSON数据,遇到json数据需要使用 json_encode() 生成;
14. 关于JSON数据编码乱码问题,如果遇到编码问题可以使用 diconv() 函数来解决,判定编码使用常量 CHARSET 通常为 diconv函数的第一个参数 , 第二个为UTF8;diconv($v,CHARSET,'utf8')//转码字符串 输入字符集 输出字符集
15. 关于 diconv() 函数,这个函数会判定编码 , 如果当前编码和目标编码一致则不进行转换;
16. 关于 CHARSET 常量 , CHARSET 常量是用来判断当前网站所用编码的常量 , 常量中存储字符串 gbk , gb2312 , utf8 等;
17. 关于css.htm , 调用css.htm文件的时候不要房屋CSS文件夹,如果要放入就要在touch文件夹下面建立一个空的css文件,导致设置起来比较麻烦 , 所以下次写CSS.htm 的时候将这个文件创建在system文件夹下面;
18. 关于class快捷开发类库 , module/class目录中的PHP文件没有检测IN_DISCUZ , 即使是普通函数文件也要写 IN_DISCUZ 常量来判定来源;
19. 语言包中不能出现逻辑与 & 符号否则会出现数据无法识别 , 以及<br> 标签无法使用
20. FW在导出切片的时候 会因为切片所在层的问题吧一张图片分为好几张 , 解决办法是将每个切片用子层分开;

mickeyort 发表于 2020-8-1 13:59:07

本帖最后由 mickeyort 于 2020-8-1 14:01 编辑

21. 过滤函数其实一直用错了 , 在有增删改的操作前使用 daddslashes 函数 , 而并非只是转义;      Filter 中的 dhtmlspecialchars 函数用错了地方 , 这里应该用 daddslashes 函数, 只要是执行SQL语句的变量都需要执行 daddslashes 函数过滤;22. 语法错误的问题 !a==b 这是傻了???23. 如果写的太乱 后台人员有权怀疑你拼凑;24. 安全函数GET错误 , 之前GET添加了参数 submitcheck('formhash',$get) $get=1 , 其实任何操作都要添加;25. 单独的 main/class 中的文件没有验证来源;26. 存在绝对路径??? , 看来这个插件中是审核是不能存在绝对路径的;27. 错误提示信息乱码 , 这是一个调试信息 , 如果下次提交注意屏蔽不能被审核看到;27. curl 如果要使用必须在说明文档里面进行阐述 , 如果是反盗版后期添加的模块则不用;28. hash验证导致反盗版传参发生错误;29. 读库后没有判定结果是否存在;30. 有中文字符 , 但是没有使用语言包;31. hash验证的常量 formhash 是有时间限制的 , 不能写人链接给用户 , 否则用户后期点击会显示链接失效;32. 请使用 diconv() 代替 iconv() 以提高兼容性33. 搜索需要使用 stripsearchkey() 函数进行过滤;34. JS报错问题 , 是LAYUI出错了 , 新插件审核不允许JS报错35. 横幅手机版导致变性 , 尽量处理一下;36. 手机版使用电脑版的弹窗提交 失败的问题;37. 管理鉴权必须严格 , 用户不能访问某些页面;38. 搜索表单没有屏蔽回车键 , 敲击回车提示插件不存在;39. 移动端选项无法显示的问题;40. 记录共同计数值的时候不能读出库在写入 , 要直接使用UP+1;
DB::query("UPDATE ".DB::table( 'zgxsh_mod_list' )." SET download_n=download_n+1 where id='".$id."'");

mickeyort 发表于 2020-8-1 14:15:48

41. 使用接口的时候都会进行远程发包, 发包时候用到的 CURL 原生函数官方不推荐使用 , 而官方推荐使用的函数是 dfsockopen();      官方批注 , 请使用 dfsockopen() 代替原生 curl 访问远程 URL 以提高兼容性,如果必须使用 curl 应当在应用介绍中注明;
42. 计划任务开发中计划任务必须放进 cron 计划任务文件夹文件 ,计划任务文件必须以 cron_ 打头,并安装是附带空的安装或更新文件;
      安装更新文件不确定,下次编写是不带试试;43. 更新方法安装计划后不会第一时间出现 , 哟时候更新缓存后才会出现 , 然而只能识别 1 个计划任务 , 无法识别第二个;44. 这是经验不是审核出现的诸多屁事 : 如果将一个元素的ID 和 name命名重复 , 将会导致IE无法识别无法兼容的BUG;45. 非表单提交使用不了 submitcheck 的增删改请求,也要判断请求来源,建议使用 $_GET['formhash'] == formhash() 进行判断, 而不是 security::hash_if(1);      增删改才需要验证 formhash 页面跳转无需验证 formhash;46. 关于LAYUI中的FORM和 laypage 在DZ弹窗中不能连用 , 连用表单无法出现 , 一般是 laypage 参数不齐全导致的 , 但是控制台不报错;47. 弹窗时 窗口弹出成功 但是是一道白色的竖线 这种情况通常是模版错误引起的 , 需要检查模版代码准确情况;48. 后台设置TXT信息时在前端JS中显示报错 , 是因为有 \n \r 等标记 , 在显示前需要全部处理!   使用<p class="MsoNormal"><span style="font-family: 微软雅黑; letter-spacing: 0pt; font-size: 9pt; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial;">$qian=array(" "," ","\t","\n","\r");//定义要清除的字符</span></p><p class="MsoNormal"><span style="font-family: 微软雅黑; letter-spacing: 0pt; font-size: 9pt; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial;">$_TRC['help_txt'] = str_replace($qian,'',$_TRC['help_txt']);//用函数清理字符</span></p>   函数处理能够解决问题;49. 语言包BUG记录二,一不小心在语言包里面加入了一个<br>标签,导致大多数页面下移 , 然后表单错位,网页顶部出现大量空行 , 这个BUG修改了1小时 , 下次要注意;50. CLASS文件夹下面需要检查IN_DISCUZ;

墨裔 发表于 2021-9-26 10:59:15

51. 后台页面判定 应该使用 defined('IN_ADMINCP');
头像框商城 ($_G['PHP_SELF']=="/admin.php" 这判断并不严谨,不是有defined('IN_ADMINCP')吗;在使用 $_G 实现逻辑前,未判断当前用户是否已经登录;
因为如果用户没登陆这玩意大致为假;

52. 软件截图太少 : 提交审核时不能上传图太少 , 指的是图片个数 , 这里用大长图是不行的;

53. 踩了大抗 : prompt提示面板 应该传入独立的CSS文件 , 否则会造成仅在部分UTF-8的环境下报错的问题;
后测试是因为部分浏览器无法识别CSS文件中的中文注释导致 , 所以CSS文件不要有任何中文即可;
如果非得有中文就得是编码一致的UTF-8;

54. 中文人民币符号在UTF-8下乱码 补充 , 这里所有的符号都必须写入语言包 , 因为符号也是有编码的;
如果符号不写入语言包则在其他编码下会显示乱码;

55. 权限判定不能 uid==1 也不能用 adminuid(自定义UID) 进行判定 , 这个可以自建函数判定 , 但是不能用于管理判定;

56. 动态引入不规范,访问用户空间绝对路径论坛在子目录下回出错 : 访问用户空间的地址必须为相对路径地址 , 不能用绝对路径;
否则论坛如果不在根目录就会报错;

57. 调试代码没有清理干净 : 就是输出代码这些 , 需要及时清理 , 粗心所致;

58. 审核会纠结于讨论admin 的问题,所以为了避免纠缠 , 请使用adminid == 1
具体用法就是使用G变量 $_G['adminid']==1 这个来判定是否是超管;

59. 整理此屁事时候注意 , 核心开发包里面可以出鉴权函数了 - 核心开发包鉴权系统第一阶段完善这是一条记录没有实际意义;

60. UTF_8编码下 LAYUI图标会乱码 , 最好的是用font_class 形式显示;
这个和上面的图标乱码类似但是不是一回事 , 因为LAYUI的图标都是UTF编码所以不能在GBK使用
但是如果只是小图标则可以用 font_class 形式显示;

墨裔 发表于 2021-9-26 11:06:44

61. 升级程序中可通过 $fromversion 和 $toversion 变量判断升级的具体版本号;

62. module/class/extension.php应当使用 dfsockopen() 代替原生 curl 访问远程 URL,以提高插件的兼容性;
dfsockopen() 确实好用 , 但是无法兼容低版本PHP; (无法兼容5.3一下版本不包括5.3)

63. 在循环中执行数据库查询效率低下,应当使用 WHERE IN() 等方法进行优化;
为此核心函数中更新了专门输出IN 序列的函数;

64. extension 函数包 , 不执行fsockopen的问题 , 导致插件鉴权失效的问题 , 可以尝试手动添加鉴权信息解决该问题; 清理中的函数包已经更新过 , 后面不在更新其他了;

65. 中心规定 将所有 函数类调用 改为 require_once 防止重复调用 将所有扩展类调用改为 @include_once 屏蔽报错
模版类调用可以继续使用 include

66. 弹窗CSS样式中不得有 /*任何中文*/ 否则弹窗无法弹出 这个和上面一条重复了 , 但是再次记录一下;

67. 会报错 s.indexOf('ajaxerror') != -1 错误 s 变量没有值;
这是个前端报错 , JS layui 的翻页出错了 , 是S查询变量没有值;

68. 手机版模版 长度报错 屏蔽手机版JS调用就行;
<!--<script src="{STATICURL}js/mobile/common.js?{VERHASH}" charset="{CHARSET}"></script>-->
目前还未知会产生啥BUG;

69. 具有上传功能的应用在卸载时候应该删除其上传的图;

70. 函数传入的数组变量必须用 $xx = array(); 来定义;
函数定义 function XXX($xx = array()){} 如果参数为数组则要用数组构建函数来定义参数;

页: [1]
查看完整版本: DZ二开审核常见驳回理由