python 安全编码白名单 - 测试所选编码名称是否由Python安全支持

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 安全编码白名单 - 测试所选编码名称是否由Python安全支持相关的知识,希望对你有一定的参考价值。

import argparse
import codecs
import re


"""
Reference: 'U+DEADBEEF: Why you shouldn't trust arbitrary text encodings'
<http://rspeer.github.io/blog/2014/03/30/unicode-deadbeef/>
"""

ENCODING_WHITELIST = re.compile(
    r'ascii|'
    r'utf-(8|16)|'
    r'cp(437|125[0-8])|'
    r'iso-8859-([1-9]|1[0-5])|'
    r'mac-roman')


def is_supported_encoding(encoding):
    """
    :returns: normalized encoding name or None if not found
    :raises: LookupError (Python unable to locate encoding name)
    """
    name = codecs.lookup(encoding).name
    if ENCODING_WHITELIST.match(name):
        return name


if __name__ == '__main__':
    """ Test from command line """
    parser = argparse.ArgumentParser()
    parser.add_argument('-e', '--encoding', default='utf-8', help=(
        "check to see if encoding is supported "
        "and return normalized encoding name"))
    args = parser.parse_args()
    try:
        encoding_name = is_supported_encoding(args.encoding)
        print("Supported encoding: '{}'".format(encoding_name) if encoding_name
              else "Specified encoding is not supported by this application.")
    except LookupError:
        print("LookupError: Specified encoding is not supported by Python.")

以上是关于python 安全编码白名单 - 测试所选编码名称是否由Python安全支持的主要内容,如果未能解决你的问题,请参考以下文章

将带有修改的字段名称和白名单验证的 SQL 语句传递给 RPC 函数。它安全且普遍吗?

安全-Pass13之白名单POST型00截断绕过(upload-labs)

安全-Pass12之白名单GET型00截断绕过(upload-labs)

xss-[安全盒子王松]

深信服防火墙mac白名单

“阿里云”ECS服务器怎么设置IP白名单?