Z-Blog Wiki Z-Blog Wiki

Z-Blog官方文库

用户工具

站点工具


appcenter:auditstandard

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
appcenter:auditstandard [2016/07/04 17:03]
yszm
appcenter:auditstandard [2020/03/13 10:21] (当前版本)
zsx
行 1: 行 1:
-<​markdown>​#​Z-Blog应用中心 ​ 应用审核规范 +<​markdown>​
-##注意 +
-* 该标准为测试版,未正式施行。+
  
 +# Z-Blog应用中心 ​ 应用审核规范
  
-##​制定标准+## 注意 
 +* 在应用中心上传应用,均需遵守此规范。规范如有改变,会通过邮件等方式通知开发者。 
 +* 违反以下规范,视情节轻重可能有以下处罚: 
 +   * 拒绝上架应用,或下架已上架应用; 
 +   * 在Z-Blog官方网站各处通报; 
 +   * 降低开发者权限; 
 +   * 关闭开发者收费应用发布权限; 
 +   * 封禁开发者,并下架所有应用。 
 +* 并非完全满足以下标准即可保证上架,当遇到收到版权投诉等特殊情况时,不能保证上架。 
 + 
 +## 制定标准
 * 保证应用的可用性与兼容性; * 保证应用的可用性与兼容性;
 * 大部分情况下,保证刚会使用 Z-Blog 的初级用户可方便的使用; * 大部分情况下,保证刚会使用 Z-Blog 的初级用户可方便的使用;
 * 大部分情况下,保证不会网站制作、图片制作的用户可方便的使用。 * 大部分情况下,保证不会网站制作、图片制作的用户可方便的使用。
  
-##通常认证标准 +## 应用强制认证标准 
-* Microsoft Edge、Firefox40+、Chrome41+、Safari5+浏览器不错位可正常使用所有功能; +违反以规则之一完全不可上架到应用中心
-* IE11、Firefox 30+、Chrome31+浏览器下不错位,隐藏不可正常使用的功能; +
-* 使用UTF-8编码,​并确保文件不带bom头部; +
-* 没有严重的安全漏洞; +
-* 不改动任何的系统文件和语言文件,不对非自己创建的文件进行任何修改; +
-* 不存在恶意代码; +
-* 非特殊情况不加密,加密必须单独提供未加密的代码; +
-* 非特殊需求,不得利用任何方式引用外站任何资源。 +
-* 在用户未明确知悉的情况下,严禁对其它应用进行任何的干扰或修改,除非该应用自行提供了公共接口 +
  
-##题认证标准+* 不涉及编码转换等情况必须使用UTF-8编码,并确保文件不带BOM头; 
 +* 没有安全漏洞(包括SQL注入、跨站脚本攻击、跨站请求伪造等): 
 +  * SQL注入:Z-BlogPHP版本所有操作博客数据库的SQL均需要使用系统自带的SQL查询库,不允许手写SQL; 
 +  * 跨站脚本攻击:Z-BlogPHP 1.5.2起引入XssHtml,请在需要白名单的输出点调用它; 
 +  * 跨站请求伪造:Z-BlogPHP 1.5.2起引入CSRF防御功能,见:https://​wiki.zblogcn.com/​doku.php?​id=zblogphp:​development:​features:​1.5.2:​security 
 +* 不存在观故意可能给用户造成损失的恶意代码; 
 +  * 即使用户使用盗版应用,也禁止对用户数据进行破坏 
 +* 在用户未明确知悉的情况下,严禁对其它应用进行任何的干扰或修改,除非该应用自行提供了公共接口; 
 +* 不含有.DS_Store、thumbs.db、_notes、.idea等无用文件或文件夹,不含有隐藏文件。 
 +* 非应用本身功能所必须的第三方接口本身不再能使用等情况,不得在任何情况下干扰用户的正常使用;
  
-* 指定页面编码为UTF-8(&​lt;​meta charset>​)。 +### 主题 
-* 必须引用c_html_js_add。 +* 必须引用c_html_js_add.asp或php。 
-* 非特殊要求,勿自带jQuery(系统自带1.8.3)。 +* 带有Z-Blog版权标识(允许使用文本、图片、JavaScript等,但需要能让用户感知)。 
-* 带有Z-Blog版权标识。+* 指定页面编码为UTF-8(&​lt;​meta charset&​gt;​)
 * 标题等长度过长不会导致变形。 * 标题等长度过长不会导致变形。
-* 保证HTML代码可正常被格式化,不出现有标签未闭合的情况 +* 类似网站Logo等每个站点都不同的配置项,必提供插件以便用户进行配置,或是利用系统的侧栏进行管理。 
-* 类似网站Logo等每个站点都不同的配置项,必提供主题插件以便用户进行配置,或是利用系统的侧栏进行管理。 +* 满足对应平台的应用认证标准。
-* 满足对应平台(ASP|PHP)的应用认证标准。+
  
-###​响应式主题 
-* 除非主题需要兼容IE6等,否则不要引用为IE6等提供支持的html5.js; 
-* 保证Android 4.0和以上版本默认浏览器、iOS 7.0和以上版本Safari、Windows Phone 8.1和以上版本的Internet Explorer 11+不出现兼容性问题,可正常使用全部功能。 
-* 保证以下设备对应的分辨率可正常浏览: 
-    *  iPad Air; 
-    *  iPad Mini; 
-    *  iPhone 5; 
-    *  Samsung Galaxy S4; 
-    *  Lumia 1520。 
  
-###​JavaScript +### PHP应用
-* 非特殊需求,则需要将JavaScript代码用(function(){})()包裹起来,防止造成污染。此时的命名不设任何限制。 +
-* 如果必须污染全局window对象,则必须保证变量等命名包括应用ID。 +
-* jQuery插件不受第二条限制。 +
-  +
-  +
- +
-## PHP应用通常认证标准+
 * 移除了所有的UTF-8 BOM头; * 移除了所有的UTF-8 BOM头;
-* 文件名大小写正确; +* 文件名大小写正确,无404页面; 
-* 在主流的操作系统(Windows、Ubuntu、CentOS)和服务器软件(IIS、Apache、nginx、Lighttpd、Kangle)下可正常运行。 +* 在主流的操作系统(Windows ​2003 SP2 / 2008r2 / 2012 / 2016、Ubuntu ​16.04 LTS / 18.04 LTS、CentOS ​6 / 7)和服务器软件(IIS ​6 - 10、Apache ​2、nginx ​1.4 - 1.12)下可正常运行。 
-* 在PHP 5.2和以上版本可正常运行。+* 在应用支持的最低版本以上的PHP版本(默认为PHP 5.2)均可正常运行。
  
-###命名标准 +####​权限判断 
-在include.php内require或include的任何PHP文件内,所有的全局变量、函数、类,全部以“插件ID\_XXX”或“XXX\_插件ID”命名; +管理页面等使用$zbp->​CheckRights而不是$zbp->​User->​Level来判断权限
-* 如需创建数据表,必须以%pre%plugin_插件ID为开头命名表; +
-* 如需使用配置类,配置名必须以插件ID开头。 +
-* 如需使用Meta存储附加数据字段名必须以插件ID开头+
  
-###​权限判断 
-* 管理页面等使用$zbp->​CheckRights,而不是$zbp->​User->​Level来判断权限。 
  
-###​数据库+#### 数据库
 * 必须使用$zbp->​db->​xxx执行SQL语句; * 必须使用$zbp->​db->​xxx执行SQL语句;
 * 涉及到表的时候必须用$table调用; * 涉及到表的时候必须用$table调用;
行 73: 行 60:
  
  
-##​ASP应用通常认证标准 
-* 在Windows 2003和以上版本的IIS 6.0和以上版本可正常运行。 
  
-###​ASP主题要求+### ASP应用 
 +* 需要在Windows 2003 SP2及以上版本、IIS 6.0及以上版本可正常运行。 
 + 
 +#### ASP主题要求
 * 非特殊情况,必须使用侧栏管理标签(<#​template:​sidebarX#>​)。 * 非特殊情况,必须使用侧栏管理标签(<#​template:​sidebarX#>​)。
 * 统计必须调用AddViewCount和LoadViewCount函数。 * 统计必须调用AddViewCount和LoadViewCount函数。
 * b_article-single.html 必须包括统计代码(可隐藏)。 * b_article-single.html 必须包括统计代码(可隐藏)。
  
- +#### 命名标准
-###​命名标准+
 * 在include.asp内include的其它文件,所有的全局变量、函数、类等,全部以“插件ID\_XXX”或“XXX\_插件ID”命名; * 在include.asp内include的其它文件,所有的全局变量、函数、类等,全部以“插件ID\_XXX”或“XXX\_插件ID”命名;
 * 如需创建数据表,必须以blog\_plugin\_插件ID为开头命名表; * 如需创建数据表,必须以blog\_plugin\_插件ID为开头命名表;
行 88: 行 75:
 * 如需使用Meta存储附加数据,字段名必须以插件ID开头。 * 如需使用Meta存储附加数据,字段名必须以插件ID开头。
  
-###​数据库 +####​数据库 
-* 对系统数据库操作时,SQL语句必须同时支持Access和SQL Server。 +* 对系统数据库操作时,SQL语句必须同时支持Access(*.mdb)和SQL Server ​2000。 
-针对SQL Server开发更多的扩展功能,但是必须保证SQL Server ​2000和以上版本用。+允许针对SQL Server开发更多的扩展功能,但是必须做好版本判断,保证在不受支持的SQL Server版本下不使新版本特性
    
  
  
-##收费应用要求 +## 非强制认证标准
-* 必须第一时间修正反馈的BUG。+
  
 +非强制代表不建议违反,并且被查出也会有拒绝上架的可能,但如有必要可解释说明及报备。
  
-##​推荐处理细节问题 +* Firefox 70+、Chrome 60+、Safari in macOS 10.12+浏览器下不错位,可正常使用所有功能; 
-强烈推荐制作响应式主题!!! +* Internet Explorer 11、Firefox 60+、Chrome 49+浏览器下不错位,隐藏不可正常使用功能; 
-Z-Blog应用中心打动忽视.git、.svn和.cvs下的文件; +不改动任何的系统文件和语言文件,不对非用本身创建的文件进行任何修改; 
-删除thunmbs.db、_notes等文件或文件; +* ASP及PHP代码不得经过任何形的对可读性造成影响的加密、混淆; 
-检查是否有无用的隐藏文件混入; +JavaScript在提供混淆版本的同时需在同一目录提供Source Map或未混淆版本; 
-最好使用语; +* 原则上不得利用任何方式引用外站任何资源,引用需要在应用中心页面写明引用了哪些资源; 
-* HTML语义化; +* 在Chrome最新Stable版本开Developer Tool,在Console不显示任何Error; 
-W3C验证+ 
 + 
 +### 主题 
 + 
 +* 除非主题需要兼容低版本Internet Explorer,否则不要引用html5shim等为低版本浏览器提供支持的脚本; 
 +* 解决W3C认证发现的以下问题: 
 +   * Stray end tag(未闭合标签) 
 +   * Duplicate (something)(重复的ID、属性等) 
 +   * Element (someElement) is missing a required instance of child element (someElement)(缺少子元素) 
 +   * No element (someElement) in scope but another end tag seen(发现多余的闭合标签) 
 + 
 +#### Z-BlogPHP 1.5以下需要遵守标准 
 +* 非特殊要求,勿带jQuery(系统自带1.8.3)。 
 + 
 +#### Z-BlogPHP 1.5以上需要遵守标准 
 +* 使用zblogphp.js,弃用common.js。 
 + 
 +#### 响应式主题 
 +* 保证iOS 11.0及以上版本Safari、Android当前版本的QQ浏览器、UC浏览器(不需要考虑系统自带浏览器,自从Android 5.0以后其已经可自动升级)不出现兼容性问题,可正常使用绝大部分功能。 
 +* 保证以设备对应分辨率可正常浏览: 
 +    *  iPad Air; 
 +     iPad Mini; 
 +    *  iPhone SE; 
 +    *  iPhone 11; 
 +    *  华为 P30。 
 + 
 + 
 +#### 命名标准 
 +* 在include.php内requireinclude的任何PHP文件内,所有的全局常量、变量、函数、类等,原则上全部以“应用ID\_XXX”或“XXX\_应用ID”命名; 
 +如需创建数据表,原则上必须以%pre%plugin_应ID为开头命名表; 
 +* 如需使用配置类,原则上配置名必须以应用ID开头; 
 +* 如需使用Meta存储附加数据,原则上字段名必须以应用ID开头; 
 +* 如同一开发者欲在自己应用下使用公用配置,需进行报备后方可使用。 
 + 
 + 
 +####​数据库 
 +* 必须使用$zbp->​db->​xxx执行SQL语句; 
 +涉及到表的时候必须用$table调用; 
 +* 建表必须在$datainfo和$table内注册; 
 +* 不使用$zbp->​db->​sql而自行拼接SQL句,需同时支持MySQL和SQLite数据库; 
 +* 不对系统的数据表的结构作任何修改。 
 +* 不得使用MySQL的ORDER BY rand() 
 + 
 +##​收费应用要求 
 +* 开发者需在3个工作日内,对用户的询问进行处理,已向官方报备并在应用详情页面明确告知的除外。 
 +* 如涉及取消用户授权等直接影响正常使用的问题,直接交由Z-Blog官方,不得私自处理。 
 +* 应用本身必须提供完备的配置项,功能不可过于简单。 
 + 
 +## 优先审核准 
 +* 原创主题; 
 +* 响应式主题; 
 +* HTML标签已经语义化的主题; 
 +* W3C验证首页和文章页无任何提示的主题; 
 +* 使用语言标签的主题;
 </​markdown>​ </​markdown>​
-<note tip> + 
-开发者在发布应用至Z-Blog应用中心前查所开发用是否符合以上规范,并使用[[https://​github.com/​zsxsoft/​appchecker/​releases|Z-Blog AppChecker]] 工具自检无误后再发布。 +===== 应用上架自检 ===== 
-</​note>​+  * 应用上架后动进入自动审核流程。开发尽力确保自动审核不出现错误。[[https://​github.com/​zsxsoft/​zbp-app-validator]]是该自动审核工具的开源版本,但不提供部署说明。 
appcenter/auditstandard.1467622980.txt · 最后更改: 2016/07/04 17:03 由 yszm