当前位置: 首页 > 面试题库 >

EXTJS Fileupload-IE8安全栏问题

姜华翰
2023-03-14
问题内容

我正在尝试制作EXTJS应用程序以发送带有附件的电子邮件。因此,我有一个非常基本的表单,其中包括主题的文本字段,带有inputType:附件的’file’的另一个文本字段以及html编辑器。

var panel = new Ext.form.FormPanel({
    fileUpload:true,
    labelAlign: 'right',        
    monitorValid: true,
    border: false,
    bodyBorder: false,       
    defaults:{
        anchor: '100%',
        labelStyle: 'font-weight:bold;'
    },
    items: [
        {
            xtype: 'textfield',
            fieldLabel: 'SUBJECT',
            name: 'subject',
            allowBlank: false
        },
        {
            xtype: 'textfield',
            fieldLabel: 'ATTACHMENT',
            name: 'file_to_upload',
            anchor: '80%',
            itemCls: 'attachment-field',
            allowBlank: true,
            inputType:'file'
        },
        {
            xtype: 'htmleditor',
            fieldLabel:'MESSAGE',
            name:'msg'
        }
    ]
});

并将此表单放置在将提交给服务器的窗口中:

var window = new Ext.Window({
    title: 'Compose a message',
    height: 600,
    width: 800,
    autoScroll: true,
    border: false,
    bodyBorder: false,        
    items: panel,
    buttons:[
        {
            text: 'Send',
            formBind: true,
            handler: function() {
                panel.getForm().submit({
                    url: *Call to the server*,
                    method  : 'POST',
                    timeout: 300000, // 5min
                    waitMsg: 'Please wait while we send your email',                        
                    success :function(form, action) {
                        window.close();
                    }                                                
                });
            }
        },
        {
            text: 'Close',
            handler: function() {
                window.close();
            }
        }
    ]
});

当我使用FF将表单提交到服务器时,一切工作都很好。但是IE8会出现问题。IE显示安全栏,表示我正在尝试将文件下载到计算机,这与我正在做的事情(我正在上传文件)完全相反!

如何防止触发此安全栏?

--EDIT 2010年12月18日,美国东部时间16:48–是否可能由以下原因引起:(来自EXTJS basicForm文档)

文件上传不是使用常规的“
Ajax”技术执行的,也就是说,它们不是使用XMLHttpRequests执行的。而是以标准方式提交表单,并临时修改DOM元素,使其目标设置为引用动态生成的隐藏对象,该对象将插入文档中,但在收集返回数据后将其删除。服务器响应由浏览器解析,以创建IFRAME的文档。如果服务器使用JSON发送返回对象,则必须将Content-
Type标头设置为“ text / html”,以告知浏览器将未更改的文本插入文档主体。对于HTML解析器重要的字符必须作为HTML实体发送,因此将“
<”编码为“
<”,将“&”编码为“&”等。从文档中检索响应文本,并创建一个包含responseText属性的伪XMLHttpRequest对象,以便符合事件处理程序和回调的要求。请注意,文件上传数据包以内容类型multipart
/ form发送,某些服务器技术(特别是JEE)可能需要进行一些自定义处理,以便从数据包内容中检索参数名称和参数值。

我认为我不了解那里的所有解释…

-结束编辑-

谢谢阿兰


问题答案:

这就是Ext写入文档的内容。

<iframe id="ext-gen170" name="ext-gen170" class="x-hidden" src="about:blank"><html><head></head><body></body></html></iframe>

可以通过设置有效的https
src路径来解决此问题,例如https://yousite.com/blank.html

我还没有找到如何修改src的方法。任何帮助都将受到欢迎



 类似资料:
  • 异步Javascript和XML(AJAX)是用于开发Web应用程序以提供丰富用户体验的最新技术之一。由于它是一项新技术,因此尚未完成许多安全问题,以下是AJAX中的少数安全问题。 攻击面更多,因为需要保护更多输入。 它还公开了应用程序的内部功能。 无法保护身份验证信息和会话。 客户端和服务器端之间存在非常狭窄的界限,因此存在安全性错误的可能性。  示例 以下是AJAX安全性的示例 - 2006年

  • 在我前面的问题中:确保javascript游戏计时 ... 很明显,Javascript/Canvas游戏中的客户端计时是不安全的。我知道关于不信任客户的咒语——这就是导致我首先挣扎的原因。:-) 所以,如果我真的把所有的时间都转移到服务器上并处理它,这是一个后续问题。游戏显然需要在提交之前完成。由于游戏谜题都是Javascript,这就引入了操纵客户端代码来伪造游戏完成的问题。 我已经在一个单独

  • Redis是一个弱安全的组件,只有一个简单的明文密码,因此在保护上需要对其他多方面的措施,另外,很多所谓安全问题不是redis本身造成的,而是误用的结果。

  • 本任务将演示如何通过使用Istio认证提供的服务账户,来安全地对服务做访问控制。 当Istio双向TLS认证打开时,服务器就会根据其证书来认证客户端,并从证书获取客户端的服务账户。服务账户在source.user的属性中。请参考Istio auth identity了解Istio中服务账户的格式。 开始之前 根据quick start的说明在开启认证的Kubernetes中安装Istio。注意,应

  • 问题内容: 我正在使用新的Twitter Bootstrap创建一个网站。该网站看起来不错,并且可以在除IE8之外的所有必需浏览器中使用。 在IE8中,它似乎在显示移动版本的元素,但延伸到了我的桌面的全屏。我认为我遇到的问题是Twitter引导程序首先是移动设备。因此出于某些原因,IE8会选择此选项。 我还注意到,该类似乎并未按预期引入max-width CSS属性。谁能看到我做错了什么? 问题答

  • 本文向大家介绍IE8兼容Jquery.validate.js的问题,包括了IE8兼容Jquery.validate.js的问题的使用技巧和注意事项,需要的朋友参考一下 只需在jquery.validate.js 文件中 在446行附近找到 return $([]).add(this.currentForm.elements).filter(":input") 更换成 以上就是本文的全部内容,希望对