<span id="7ztzv"></span>
<sub id="7ztzv"></sub>

<span id="7ztzv"></span><form id="7ztzv"></form>

<span id="7ztzv"></span>

        <address id="7ztzv"></address>

            Often Misused: Encoding

            ABSTRACT

            標識調用可對字符應用最佳適應算法。傳遞給默認 API 方法的不受支持的字符可通過最佳適應算法映射到危險字符。

            EXPLANATION

            當操作系統及其上運行的應用程序之間的字符集不匹配時,傳遞給默認 API 方法的不受支持的字符可通過最佳適應算法映射到危險字符。

            例 1:在 Objective-C 中,以下代碼示例會將包含 UTF-8 字符的 NSString 對象轉換成 ASCII 數據然后返回:


            ...
            unichar ellipsis = 0x2026;
            NSString *myString = [NSString stringWithFormat:@"My Test String%C",
            ellipsis];
            NSData *asciiData = [myString dataUsingEncoding:NSASCIIStringEncoding
            allowLossyConversion:YES];
            NSString *asciiString = [[NSString alloc] initWithData:asciiData
            encoding:NSASCIIStringEncoding];
            NSLog(@"Original:%@ (length %d)", myString, [myString length]);
            NSLog(@"Best-fit-mapped:%@ (length %d)", asciiString, [asciiString length]);
            // output:
            // Original:My Test String...(length 15)
            // Best-fit-mapped:My Test String...(length 17)
            ...


            如果仔細查看輸出,您會發現 "..." 字符已轉換成三個連續的句號。如果根據輸出緩沖區調整了輸出緩沖區大小,則應用程序易受緩沖區溢出攻擊。其他字符可從一個字符映射到兩個。希臘字符 "fi" 會映射到 "f",后跟 "i"。通過前期加載包含這些字符的緩沖區,攻擊者可完全控制用于實施緩沖區溢出攻擊的字符數量。

            REFERENCES

            [1] Apple Secure Coding Guide Apple

            [2] Standards Mapping - Common Weakness Enumeration - (CWE) CWE ID 176

            [3] String Programming Guide Apple


            Copyright 2013 Fortify Software - All rights reserved.
            (Generated from version 2013.1.1.0008 of the Fortify Secure Coding Rulepacks)
            desc.semantic.objc.method_may_best_fit_map_characters

            <span id="7ztzv"></span>
            <sub id="7ztzv"></sub>

            <span id="7ztzv"></span><form id="7ztzv"></form>

            <span id="7ztzv"></span>

                  <address id="7ztzv"></address>

                      亚洲欧美在线