Unicode控制字符列表:Web项目HTML删除控制字符注入

15 篇文章 0 订阅
5 篇文章 0 订阅

异想之旅:本人原创博客完全手敲,绝对非搬运,全网不可能有重复;本人无团队,仅为技术爱好者进行分享,所有内容不牵扯广告。本人所有文章仅在CSDN、掘金和个人博客(一定是异想之旅域名)发布,除此之外全部是盗文!


用户起用户名的时候使用控制字符还是需要限制一下!下面给出了一个列表,每个数字表示一个控制字符对应的Unicode编码:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 173, 888, 889, 896, 897, 898, 899, 907, 909, 930, 1328, 1367, 1368, 1419, 1420, 1424, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1515, 1516, 1517, 1518, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1564, 1565, 1757, 1806, 1807, 1867, 1868, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 2043, 2044, 2094, 2095, 2111, 2140, 2141, 2143, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2229, 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2274, 2436, 2445, 2446, 2449, 2450, 2473, 2481, 2483, 2484, 2485, 2490, 2491, 2501, 2502, 2505, 2506, 2511, 2512, 2513, 2514, 2515, 2516, 2517, 2518, 2520, 2521, 2522, 2523, 2526, 2532, 2533, 2559, 2560, 2564, 2571, 2572, 2573, 2574, 2577, 2578, 2601, 2609, 2612, 2615, 2618, 2619, 2621, 2627, 2628, 2629, 2630, 2633, 2634, 2638, 2639, 2640, 2642, 2643, 2644, 2645, 2646, 2647, 2648, 2653, 2655, 2656, 2657, 2658, 2659, 2660, 2661, 2679, 2680, 2681, 2682, 2683, 2684, 2685, 2686, 2687, 2688, 2692, 2702, 2706, 2729, 2737, 2740, 2746, 2747, 2758, 2762, 2766, 2767, 2769, 2770, 2771, 2772, 2773, 2774, 2775, 2776, 2777, 2778, 2779, 2780, 2781, 2782, 2783, 2788, 2789, 2802, 2803, 2804, 2805, 2806, 2807, 2808, 2816, 2820, 2829, 2830, 2833, 2834, 2857, 2865, 2868, 2874, 2875, 2885, 2886, 2889, 2890, 2894, 2895, 2896, 2897, 2898, 2899, 2900, 2901, 2904, 2905, 2906, 2907, 2910, 2916, 2917, 2936, 2937, 2938, 2939, 2940, 2941, 2942, 2943, 2944, 2945, 2948, 2955, 2956, 2957, 2961, 2966, 2967, 2968, 2971, 2973, 2976, 2977, 2978, 2981, 2982, 2983, 2987, 2988, 2989, 3002, 3003, 3004, 3005, 3011, 3012, 3013, 3017, 3022, 3023, 3025, 3026, 3027, 3028, 3029, 3030, 3032, 3033, 3034, 3035, 3036, 3037, 3038, 3039, 3040, 3041, 3042, 3043, 3044, 3045, 3067, 3068, 3069, 3070, 3071, 3085, 3089, 3113, 3130, 3131, 3132, 3141, 3145, 3150, 3151, 3152, 3153, 3154, 3155, 3156, 3159, 3163, 3164, 3165, 3166, 3167, 3172, 3173, 3184, 3185, 3186, 3187, 3188, 3189, 3190, 3213, 3217, 3241, 3252, 3258, 3259, 3269, 3273, 3278, 3279, 3280, 3281, 3282, 3283, 3284, 3287, 3288, 3289, 3290, 3291, 3292, 3293, 3295, 3300, 3301, 3312, 3315, 3316, 3317, 3318, 3319, 3320, 3321, 3322, 3323, 3324, 3325, 3326, 3327, 3332, 3341, 3345, 3397, 3401, 3408, 3409, 3410, 3411, 3428, 3429, 3456, 3457, 3460, 3479, 3480, 3481, 3506, 3516, 3518, 3519, 3527, 3528, 3529, 3531, 3532, 3533, 3534, 3541, 3543, 3552, 3553, 3554, 3555, 3556, 3557, 3568, 3569, 3573, 3574, 3575, 3576, 3577, 3578, 3579, 3580, 3581, 3582, 3583, 3584, 3643, 3644, 3645, 3646, 3676, 3677, 3678, 3679, 3680, 3681, 3682, 3683, 3684, 3685, 3686, 3687, 3688, 3689, 3690, 3691, 3692, 3693, 3694, 3695, 3696, 3697, 3698, 3699, 3700, 3701, 3702, 3703, 3704, 3705, 3706, 3707, 3708, 3709, 3710, 3711, 3712, 3715, 3717, 3723, 3748, 3750, 3774, 3775, 3781, 3783, 3790, 3791, 3802, 3803, 3808, 3809, 3810, 3811, 3812, 3813, 3814, 3815, 3816, 3817, 3818, 3819, 3820, 3821, 3822, 3823, 3824, 3825, 3826, 3827, 3828, 3829, 3830, 3831, 3832, 3833, 3834, 3835, 3836, 3837, 3838, 3839, 3912, 3949, 3950, 3951, 3952, 3992, 4029, 4045, 4059, 4060, 4061, 4062, 4063, 4064, 4065, 4066, 4067, 4068, 4069, 4070, 4071, 4072, 4073, 4074, 4075, 4076, 4077, 4078, 4079, 4080, 4081, 4082, 4083, 4084, 4085, 4086, 4087, 4088, 4089, 4090, 4091, 4092, 4093, 4094, 4095, 4294, 4296, 4297, 4298, 4299, 4300, 4302, 4303, 4681, 4686, 4687, 4695, 4697, 4702, 4703, 4745, 4750, 4751, 4785, 4790, 4791, 4799, 4801, 4806, 4807, 4823, 4881, 4886, 4887, 4955, 4956, 4989, 4990, 4991, 5018, 5019, 5020, 5021, 5022, 5023, 5110, 5111, 5118, 5119, 5789, 5790, 5791, 5881, 5882, 5883, 5884, 5885, 5886, 5887, 5901, 5909, 5910, 5911, 5912, 5913, 5914, 5915, 5916, 5917, 5918, 5919, 5943, 5944, 5945, 5946, 5947, 5948, 5949, 5950, 5951, 5972, 5973, 5974, 5975, 5976, 5977, 5978, 5979, 5980, 5981, 5982, 5983, 5997, 6001, 6004, 6005, 6006, 6007, 6008, 6009, 6010, 6011, 6012, 6013, 6014, 6015, 6110, 6111, 6122, 6123, 6124, 6125, 6126, 6127, 6138, 6139, 6140, 6141, 6142, 6143, 6158, 6159, 6170, 6171, 6172, 6173, 6174, 6175, 6265, 6266, 6267, 6268, 6269, 6270, 6271, 6315, 6316, 6317, 6318, 6319, 6390, 6391, 6392, 6393, 6394, 6395, 6396, 6397, 6398, 6399, 6431, 6444, 6445, 6446, 6447, 6460, 6461, 6462, 6463, 6465, 6466, 6467, 6510, 6511, 6517, 6518, 6519, 6520, 6521, 6522, 6523, 6524, 6525, 6526, 6527, 6572, 6573, 6574, 6575, 6602, 6603, 6604, 6605, 6606, 6607, 6619, 6620, 6621, 6684, 6685, 6751, 6781, 6782, 6794, 6795, 6796, 6797, 6798, 6799, 6810, 6811, 6812, 6813, 6814, 6815, 6830, 6831, 6847, 6848, 6849, 6850, 6851, 6852, 6853, 6854, 6855, 6856, 6857, 6858, 6859, 6860, 6861, 6862, 6863, 6864, 6865, 6866, 6867, 6868, 6869, 6870, 6871, 6872, 6873, 6874, 6875, 6876, 6877, 6878, 6879, 6880, 6881, 6882, 6883, 6884, 6885, 6886, 6887, 6888, 6889, 6890, 6891, 6892, 6893, 6894, 6895, 6896, 6897, 6898, 6899, 6900, 6901, 6902, 6903, 6904, 6905, 6906, 6907, 6908, 6909, 6910, 6911, 6988, 6989, 6990, 6991, 7037, 7038, 7039, 7156, 7157, 7158, 7159, 7160, 7161, 7162, 7163, 7224, 7225, 7226, 7242, 7243, 7244, 7305, 7306, 7307, 7308, 7309, 7310, 7311, 7355, 7356, 7368, 7369, 7370, 7371, 7372, 7373, 7374, 7375, 7419, 7420, 7421, 7422, 7423, 7674, 7958, 7959, 7966, 7967, 8006, 8007, 8014, 8015, 8024, 8026, 8028, 8030, 8062, 8063, 8117, 8133, 8148, 8149, 8156, 8176, 8177, 8181, 8191, 8203, 8204, 8205, 8206, 8207, 8234, 8235, 8236, 8237, 8238, 8288, 8289, 8290, 8291, 8292, 8293, 8294, 8295, 8296, 8297, 8298, 8299, 8300, 8301, 8302, 8303, 8306, 8307, 8335, 8349, 8350, 8351, 8384, 8385, 8386, 8387, 8388, 8389, 8390, 8391, 8392, 8393, 8394, 8395, 8396, 8397, 8398, 8399, 8433, 8434, 8435, 8436, 8437, 8438, 8439, 8440, 8441, 8442, 8443, 8444, 8445, 8446, 8447, 8588, 8589, 8590, 8591, 9255, 9256, 9257, 9258, 9259, 9260, 9261, 9262, 9263, 9264, 9265, 9266, 9267, 9268, 9269, 9270, 9271, 9272, 9273, 9274, 9275, 9276, 9277, 9278, 9279, 9291, 9292, 9293, 9294, 9295, 9296, 9297, 9298, 9299, 9300, 9301, 9302, 9303, 9304, 9305, 9306, 9307, 9308, 9309, 9310, 9311]

使用方式给两个示例:

Python

a = []  # 上面的列表,有点长不复制了
s = "要处理的字符串"
for i in a:
	s = s.replace(chr(i), "")
let a = []  // 上面的列表,有点长不复制了
let s = "要处理的字符串"
for (let i = 0; i < a.length; i++) {
	s = s.replaceAll(String.fromCharCode(a[i]), "");
}

至于效率问题,的确不是非常高,我这里进行了十万次测试结果如图,差不多0.7毫秒一次

在这里插入图片描述

但是web项目检测个用户名啥的还是够用的,十几个字符的串 time.time() 相减直接返回0


Python判断一个字符是否是控制字符:

import unicodedata
s = "A"  # 要检测的单个字符
print(unicodedata.category(s)[0] == "C")

更多unicode字符分类知识:Unicode字符类_樊海鹏的博客-CSDN博客_unicode字符

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

异想之旅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值