您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 织梦系统(dede)安全问题
在调用织梦系统(dede)SQL标签时如果sql语句中有子查询或联合查询等复杂查询时,会出现“SafeAlert:RequestErrorstep2!”错误提示,原因是出于安全问题的考虑!但有时又不得不使用这些复杂查询,故经本人研究成功解决了此问题,不敢独享,现发出希望能为大家解决一些问题!解决方案:1、在dedesql.class.php找到以下内容//老版本的MYSQL不支持子查询,我们的程序里可能也用得少,但是黑客可以使用它来查询数据库敏感信息elseif(preg_match('~\([^)]*?select~s',$clean)!=0){$fail=true;$error=subselectdetect;}if(!empty($fail)){fputs(fopen($log_file,'a+'),$userIP||$getUrl||$db_string||$error\r\n);exit(fontsize='5'color='red'SafeAlert:RequestErrorstep2!/font);}else{return$db_string;}将红色部份注释。2、以上方法虽可行,但全部程序都存在安全隐患,故不推荐,可使用如下方法:a)、如果你是在模板中调用,请在调用标签之前加上{dede:php}$dsql-safeCheck=false;{/dede:php}在调用之后加上{dede:php}$dsql-safeCheck=true;{/dede:php}b)、如果你是在php文件中调用,请在执行sql语句之前加上$dsql-safeCheck=false;在执行sql语句之后加上$dsql-safeCheck=true;以上两个解决方案均可成功解决织梦系统(dede)cms的安全问题,至于使用哪一个请读者自选。
本文标题:织梦系统(dede)安全问题
链接地址:https://www.777doc.com/doc-1268122 .html