cwe - 749:暴露危险的方法或函数
 
         视图定制的信息: 
        这个弱点可能导致各种各样的合成弱点,根据暴露的行为方法。它可以适用于任何数量的技术和方法,如ActiveX控件,Java函数,ioctl等等。 暴露可能发生在几个不同的方式: 
  此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
            相关的视图”研究概念”(cwe - 1000)
  此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
            相关观点“软件开发”(cwe - 699)
  该清单显示了给定的弱点可以可能的地区出现。这些可能是为特定命名的语言,操作系统,架构、模式、技术、或一个类这样的平台。列出的平台是随着频率的出现疲态实例。
           语言 类:不是特定于语言的患病率(待定)  这个表指定不同的个人相关后果的弱点。标识应用程序范围的安全领域侵犯,而影响了负面的技术影响,如果敌人成功利用这个弱点。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能会有高可能性,缺点将被利用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
           
 示例1 在下面的Java示例方法removeDatabase将删除数据库中指定的输入参数的名称。 
                (坏的代码) 
               
                例如语言:Java 
              
                公共空间removeDatabase(字符串数据库名){ 
              
                  尝试{ 
                
                    =声明支撑conn.createStatement (); 
                  支撑。执行(“数据库”+数据库名); 本例中的方法声明公开,因此暴露在应用程序中的任何类。删除一个数据库应该考虑一个关键操作在应用程序和访问这些潜在危险的方法应该被限制。在Java这可以简单地通过声明方法完成私人从而让它只封闭类下面的例子。 
                (好的代码) 
               
                例如语言:Java 
              
                私人空间removeDatabase(字符串数据库名){ 
              
                  尝试{ 
                
                    =声明支撑conn.createStatement (); 
                  支撑。执行(“数据库”+数据库名); } 示例2 这些Android和iOS应用程序拦截URL WebView中加载和执行特殊操作如果使用一个特定的URL方案,从而使Javascript WebView中交流与应用程序: 
                (坏的代码) 
               
                例如语言:Java 
              
                / /安卓
                 
              @Override 公共布尔shouldOverrideUrlLoading (WebView视图中,字符串url) { 
                  如果(url.substring (0, 14) .equalsIgnoreCase (examplescheme: ")) { 
                
                   如果(url.substring (25) .equalsIgnoreCase (“getUserInfo”)) { }
                    writeDataToView(视图中,用户数据); }返回错误; 其他{ 
                    返回true; }
                (坏的代码) 
               
                例如语言:objective - c 
              
                / / iOS
                 
              (保龄球)webView:(UIWebView *) exWebView shouldStartLoadWithRequest: (NSURLRequest *) exRequest navigationType: exNavigationType (UIWebViewNavigationType) { 
                  NSURL * URL = [exRequest URL]; 
                如果([[URL方案]isEqualToString: @ " exampleScheme "]) { 
                    resourceSpecifier NSString * functionString = [URL]; 
                  如果([functionString hasPrefix: @ " specialFunction "]) { / /使数据可用webview。 UIWebView * webView =[自我writeDataToView: [URL查询]]; 返回NO; 返回YES; 打个电话到本机代码可以由在URL传递参数: 
                (攻击代码) 
               
                例如语言:JavaScript 
              
                窗口。位置= examplescheme: / /方法? =参数值 
              因为应用程序不检查源,一个恶意网站加载在这个WebView有相同的访问API是一个可信任的网站。 示例3 这个应用程序使用WebView来显示网站,并创建一个Javascript接口的Java对象允许增强的功能在一个可信赖的网站: 
                (坏的代码) 
               
                例如语言:Java 
              
                公开课WebViewGUI延伸活动{ 
              
                  WebView mainWebView; 
                公共空间onCreate(包savedInstanceState) { 
                   super.onCreate (savedInstanceState); }mainWebView = new WebView(这个); mainWebView.getSettings () .setJavaScriptEnabled(真正的); mainWebView。addJavascriptInterface(新JavaScriptInterface (),“userInfoObject”); mainWebView.loadUrl(“文件:/ / / android_asset / www / index . html”); setContentView (mainWebView); 最后一节课JavaScriptInterface { 
                    JavaScriptInterface () {} 
                  公共字符串getUserInfo () { 
                     返回currentUser.Info (); }Android 4.2之前所有方法,包括继承的,暴露于Javascript使用addJavascriptInterface时()。这意味着一个恶意网站加载在这个WebView可以使用反射来获取任意Java对象的引用。这将允许网站代码来执行任何操作父应用程序授权。 例如,如果应用程序允许发送短信: 
                (攻击代码) 
               
                例如语言:JavaScript 
              
                <脚本> 
              
                 userInfoObject.getClass () .forName (android.telephony.SmsManager) .getMethod (getDefault, null)。attackMessage sendTextMessage (attackNumber空,空,空); > < /脚本这种恶意脚本可以使用userInfoObject对象加载SmsManager对象和任意的短信发送给收件人。 示例4 Android 4.2后,只有方法注释@JavascriptInterface可用在JavaScript中,保护使用getClass()在默认情况下,在这个例子中: 
                (坏的代码) 
               
                例如语言:Java 
              
                最后一节课JavaScriptInterface { 
              
                  JavaScriptInterface () {} 
                @JavascriptInterface 公共字符串getUserInfo () { 
                   返回currentUser.Info (); }上面这段代码不容易受到攻击,但仍可能公开用户信息恶意WebView中加载页面。甚至恶意iframes加载一个可信的页面内可以访问公开的接口: 
                (攻击代码) 
               
                例如语言:JavaScript 
              
                <脚本> 
              
                 var信息= window.userInfoObject.getUserInfo (); > < /脚本sendUserInfo(信息); 这种恶意代码在一个iframe可以访问接口对象和窃取用户的数据。 
 
  这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
           
 研究的差距 
             低报和超。这个弱点可能出现在任何技术、语言或框架,允许程序员外部各方提供一个功能接口,但它不是大量报道。2007年,CVE开始显示出显著增加暴露的报道方法ActiveX应用程序中的漏洞,以及IOCTL访问操作系统资源。这些缺点已经记录了Java应用程序在各种安全编程的来源,但很少有报道在CVE,这表明有限意识脆弱性研究社区的大部分地区。 
           
 
 
        更多的信息是可用的,请选择一个不同的过滤器。 
       | 
     
    
| 
         使用常见的弱点枚举(CWE)和相关的引用从这个网站的使用条款。CWE赞助的美国国土安全部(DHS)网络和基础设施安全机构(CISA)和管理的国土安全系统工程和发展研究所这是由(HSSEDI)manbetx客户端首页(斜方)。版权©2006 - 2023,斜方公司。manbetx客户端首页CWE、水煤浆、CWRAF, CWE标志是斜方公司的商标。manbetx客户端首页  | 
       ||

