xhEditor demo : Ajax文件上传

具体参考xhEditor 手册和压缩包中demo08.html几种示例

 

下载xhEditor,主要是让文件夹xheditor_emot、xheditor_plugins、xheditor_skin和文件xheditor-zh-cn.min.js保持在同一个目录中。我都放在了xheditor文件夹中

 

html

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>xhEditor demo8 : Ajax文件上传</title>
<link rel="stylesheet" href="common.css" type="text/css" media="screen" />
<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="xheditor/xheditor-zh-cn.min.js?v=1.1.3"></script>
<script type="text/javascript">
$(pageInit);
function pageInit()
{
	$('#elm1').xheditor({upLinkUrl:"upload.php",upLinkExt:"zip,rar,txt",upImgUrl:"upload.php",upImgExt:"jpg,jpeg,gif,png",upFlashUrl:"upload.php",upFlashExt:"swf",upMediaUrl:"upload.php",upMediaExt:"wmv,avi,wma,mp3,mid",shortcuts:{'ctrl+enter':submitForm}});
}
function insertUpload(arrMsg)
{
	var i,msg;
	for(i=0;i<arrMsg.length;i++)
	{
		msg=arrMsg[i];
		$("#uploadList").append('<option value="'+msg.id+'">'+msg.localname+'</option>');
	}
}
function submitForm(){$('#frmDemo').submit();}
</script>
</head>
<body>

<form id="frmDemo" method="post" action="show.php">
	<h3>xhEditor demo8 : Ajax文件上传</h3>
	1,普通上传模式:<br />
	<textarea id="elm1" name="elm1" rows="12" cols="80" style="width: 80%">
<!--网页编辑器中的内容-->
	</textarea><br /><br />
<input type="submit" name="save" value="Submit" />
	<input type="reset" name="reset" value="Reset" />
</form>
</body>
</html>

 

当前实例调用的Javascript源代码为:

$('#elm1').xheditor({upLinkUrl:"upload.php",upLinkExt:"zip,rar,txt",upImgUrl:"upload.php",upImgExt:"jpg,jpeg,gif,png",upFlashUrl:"upload.php",upFlashExt:"swf",upMediaUrl:"upload.php",upMediaExt:"avi"});

 

请确保当前目录中的upload.php有相应的PHP执行权限,若您使用的是其它的服务器脚本语言,请自行对初始化参数中的upLinkUrl、upImgUrl、upFlashUrl和upMediaUrl进行修改,并开发相应服务器上传接收程序。

注:upload.php仅为演示代码,若您希望在自己的项目中实际使用,请自行修改代码或者重新开发,开发过程中请注意上传文件的格式及大小限制,注意服务器安全问题。

上传接收程序开发规范:
1,上传文件域名字为:filedata
2,返回结构必需为json,并且结构如下:{"err":"","msg":"200906030521128703.gif"}
若上传出现错误,请将错误内容保存在err变量中;若上传成功,请将服务器上的绝对或者相对地址保存在msg变量中。
编辑器若发现返回的err变量不为空,则弹出窗口显示返回的错误内容。


上传管理方案建议:
1,在编辑器初始化时在upload.php后面跟上一个服务器生成的绝对唯一的跟踪值,例如:upload.php?infoid=121312121
2,在服务器接收程序中以这个跟踪值保存到数据库中,同样可以限制单个跟踪值下总上传文件数或者总文件大小,否则就是一个可以上传无限个文件的漏洞了
3,最终当前表单提交时,再根据编辑器提交的HTML内容和数据库中上传内容进行比较,删除所有没有使用的上传文件
4,定期由服务器脚本删除上传数据库中没提交的文件记录,这样就能防止别人将您的网站作为免费相册空间了

 

 

注:

我用的是struts2文件上传,在不同的浏览器生成的request header不一样,会造成上传文件失败。经测试,Opera和IE可以。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
xheditor是一款富文本编辑器,用于网页开发中的文本编辑功能。然而,xheditor也存在一些漏洞,以下是一些常见的漏洞: 1. XSS(跨站脚本攻击)漏洞:xheditor对于输入内容的过滤不够严格,导致攻击者可以在编辑器中插入恶意脚本代码,进而窃取用户的敏感信息。这可以通过在输入内容中嵌入<script>标签或其他能执行脚本的代码来实现。 2. 文件漏洞:xheditor允许用户上文件,但在文件的过程中,未进行足够的文件类型和大小验证,这可能导致恶意文件和执行。攻击者可以上包含恶意脚本的文件或者超过系统承载能力的大文件,造成拒绝服务或其他安全风险。 3. 未经授权的访问漏洞:xheditor在默认情况下没有使用身份验证和授权措施,这使得未授权的用户可以直接访问和使用编辑器功能。攻击者可以在没有权限的情况下修改、删除或发布内容,这对网站的安全和数据完整性构成威胁。 针对xheditor的这些漏洞,建议采取以下措施来改进安全性: 1. 对用户输入内容进行严格的过滤和验证,防止XSS攻击。可以使用HTML转义或过滤器来去除或替换输入中的危险字符和标签。 2. 在文件过程中,限制文件类型和大小,并进行正确的文件检查和处理。可以采用白名单验证,只允许上安全的文件类型,并设置最大文件限制,以防止恶意文件和执行。 3. 添加身份验证和授权机制,限制对xheditor的访问权限。只有经过授权的用户才能使用编辑器功能,避免未授权用户对内容进行修改或发布。 4. 定期更新和维护xheditor,及时修复已知的漏洞。保持软件的最新版本,并及时关注安全社区的公告和建议,确保及时应对新出现的漏洞。 总之,xheditor作为一款常用的富文本编辑器,需要开发人员在使用时注意其潜在的漏洞,并采取相应的安全措施,以保护网站和用户的安全。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值