KindEditor上传文件加cookies/session权限验证

ASP新手入门
KindEditor编辑器上传文件是没有用户登录验证和权限验证的,即任何人都可以上传,这样很不安全,会有文件上传漏洞。于是,我们就需要加一个权限验证了。

以下是KindEditor 4.1.11的ASP接口示例:

KindEditor中单个图片及文件上传,可以直接在  KindEditor/asp/upload_json.asp 这个文件顶部加入如下代码:


<% '……省略包含文件及打开数据库和DB函数的代码 if len(request.Cookies("username"))>0 and len(request.Cookies("password"))>0 then dim rs Set Rs = DB("Select [password] From [Admin] Where [Username]='" & username & "'",1) If Not Rs.Eof Then if rs(0)<>password then response.End() else response.End() End If : Rs.Close else response.End() end if %> 说明:单个图片及文件上传时,upload_json.asp文件可以获取cookies和session,因此可以直接写入验证程序。

然而,KindEditor批量图片上传功能,采用的是FLASH方式,FLASH无法直接获取cookies和session,需要传值进去才能不丢失cookies和session。

所以,KindEditor上传文件加入cookies/session权限验证的最终解决方法如下:

调用KindEditor的页面中,如:



<link rel="stylesheet" href="kindeditor/themes/default/default.css" /> <script charset="utf-8" src="kindeditor/kindeditor-all.js"></script> <script charset="utf-8" src="kindeditor/lang/zh-CN.js"></script> <script> var KE; KindEditor.ready(function(K) { KE = K.create('#Content',{ uploadJson : 'kindeditor/asp/upload_json.asp?username=<%=request.Cookies("username")%>&password=<%=request.Cookies("password")%>', fileManagerJson : 'kindeditor/asp/file_manager_json.asp', allowImageUpload: true, //多图上传 allowFileManager : true, //浏览图片空间 filterMode : false, //HTML特殊代码过滤 afterBlur: function(){ this.sync(); } //编辑器失去焦点(blur)时执行的回调函数(将编辑器的HTML数据同步到textarea) }); }); </script> <textarea id="Content" name="Content" style=" width: 99%; height: 500px; visibility: hidden; display: block; "></textarea>

KindEditor/asp/upload_json.asp 这个文件中,在顶部加入如下代码:

<% '……省略包含文件及打开数据库和DB函数的代码 dim username,password username=trim(request.QueryString("username")) password=trim(request.QueryString("password")) username=Replace(Replace(Replace(Replace(Replace(Replace(username,"'",""),")",""),">",""),"*",""),"?",""),"%","") password=Replace(Replace(Replace(Replace(Replace(Replace(password,"'",""),")",""),">",""),"*",""),"?",""),"%","") If Len(username)>0 And Len(password)>0 Then dim rs Set Rs = DB("Select [password] From [Admin] Where [Username]='" & username & "'",1) If Not Rs.Eof Then If rs(0)<>password Then response.End() else response.End() End If : Rs.Close else response.End() End If %>


相关内容推荐

ASP表单输入到HTML

ASP能写.html或者任何其他的直接到web服务器的文档文本(你需要写文本输出到写权限的目录)。这是能够不需要上传PC的文件用户输入即时的发布信息。 下面的例子有四个输入区域(标

编写第一个ASP程序

现在有很多关于ASP编程的教程。其中有些是对于你有帮助,有些完全没有用。甚至有些写得是误人子弟。无论如何,你读过一些关于ASP的内容,现在你已经准备好构建第一个应用程序。

asp获取IP地址的函数

FunctionGetIp() DimDulIp,ProIP DulIp=Request.ServerVariables("HTTP_X_FORWARDED_FOR") ProIP=Request.ServerVariables("REMOTE_ADDR") IfDulIp=""Then GetIp=ProIP Else GetIp=DulIp EndIf EndFunction

ASP-条件语句

有时,当我们写代码时,我们要为作出不同的决定而执行不同的操作。我们可以使用条件语句中的代码来做到这一点。条件语句是一套用于执行基于不同条件的不同动作的命令。 为了支

周的天数

想在asp显示当前一周有多少天吗?这个代码会把握住今天的值和利用到案例选择显示一周的天数。 % date_value = date() %%= date_value %br% dayofweek=weekday(date_value) %day number in week %= dayofweek %br%

返回
顶部