• AllowScriptAccess 与allowNetworking【转】


    刚才遇到前台发来的一个消息,一个莲花钟模块总是弹出页面,查了一下,发现这个模块是很早以前就已经审核通过了,以前没有发生过问题,看来是flash文件被人修改了。问了一下其他人,如何在不修改flash本身的情况下,禁止弹出窗口,果然是有方法,就是引用的时候设置一下allowNetWorking="none" allowScriptAccess="never"就行了。又学了一招。

    到网上找了一份介绍这两个属性的资料,贴在这里做个备忘

    1,AllowScriptAccess 

    参数: 

    sameDomain:仅当 SWF 文件和网页位于同一域中时才允许执行外出脚本访问。这是 AVM2 内容的默认值。 
    never:外出脚本访问将始终失败。 
    always:外出脚本访问将始终成功。 

    AllowScriptAccess 参数可以防止从一个域中承载的 SWF 文件访问来自另一个域的 HTML 页面中的脚本。 
    对从另一个域承载的所有 SWF 文件使用 AllowScriptAccess="never" 可以确保位于 HTML 页面中的脚本的安全性。 


    2,allowNetworking 

    参数: 

    "all"(默认值)― SWF 文件中允许使用所有网络 API。 
    "internal"― SWF 文件可能不调用浏览器导航或浏览器交互 API,但是它会调用任何其它网络 API。 
    "none"― SWF 文件可能不调用浏览器导航或浏览器交互 API,并且它无法使用任何 SWF 到 SWF 通信 API。 

    可以控制 SWF 文件对网络功能的访问。调用被禁止的 API 会引发 SecurityError 异常。 

    当 allowNetworking 设置为 "internal" 时,以下 API 被禁止: 

    navigateToURL() 
    fscommand() 
    ExternalInterface.call() 

    当 allowNetworking 设置为 "none" 时,除了上面列出的那些 API 外,还会禁止以下 API: 

    sendToURL() 
    FileReference.download() 
    FileReference.upload() 
    Loader.load() 
    LocalConnection.connect() 
    LocalConnection.send() 
    NetConnection.connect() 
    NetStream.play() 
    Security.loadPolicyFile() 
    SharedObject.getLocal() 
    SharedObject.getRemote() 
    Socket.connect() 

    3,allowFullScreen 

    参数: 

    启用全屏模式设置为"true",否则设置为"false"(默认值) 

    仅当在响应鼠标事件或键盘事件时才会调用启动全屏模式的 ActionScript。如果在其它情况中调用,Flash Player 会引发异常。 

    在全屏模式下,用户无法在文本输入字段中输入文本。所有键盘输入和键盘相关的 ActionScript 在全屏模式下均会被禁用,但将应用程序返回标准模式的键盘快捷键(例如按 Esc)除外。 

    当内容进入全屏模式时,程序会显示一条消息,指导用户如何退出和返回标准模式。该消息将显示几秒钟,然后淡出。 

    如果某个调用方与 Stage 所有者(主 SWF 文件)没有位于同一安全沙箱,则调用 Stage 对象的 displayState 属性会引发异常。 

    管理员可以通过在 mms.cfg 文件中设置 FullScreenDisable = 1 对浏览器中运行的 SWF 文件禁用全屏模式。 

    在浏览器中,必须在 HTML 页面中包含 SWF 文件,才能进入全屏模式。 

    在独立的播放器或放映文件中始终允许全屏模式。 

    实例代码: 



    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" width="100%" height="100%"> 
    <param name="movie" value="falsh.swf" /> 
    <param name="quality" value="high" /> 
    <param name="AllowScriptAccess" value="sameDomain" /> 
    <param name="allowNetworking" value="all" /> 
    <param name="allowFullScreen" value="true" /> 
    <embed src="falsh.swf" width="100%" height="100%" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" allowscriptaccess="sameDomain" allownetworking="all" allowfullscreen="true"></embed> 
    </object>

    http://shuiranyue.blog.163.com/blog/static/421990342009915105956970/

    人和人不要比。自己做自己。
  • 相关阅读:
    【C++】Debugging Segmentation Faults
    Ubuntu硬盘挂载
    基于C++11以及17实现线程池【如何设置线程池大小】
    Ubuntu快速删除大量文件的思路
    基于systemback的Ubuntu系统镜像备份和安装方案
    【Vue项目实践】创建一个 electron+vue3 的项目
    【Vue项目实践】套用github 上的项目(vue3 + Element Plus)运行 可编辑表格
    在vscode中使用博客园插件
    【rtsp】视频流
    【Vue项目实践】采用 iview 快速开始
  • 原文地址:https://www.cnblogs.com/crkay/p/2550672.html
Copyright © 2020-2023  润新知