什么是非法字符?非法字符都有哪些?

什么是非法符?非法符都有哪些? 在数世界的信息传递与存储中,“非法符”是一个与规则紧密绑定的概念——它并非指“违反法律”的符,而是特定场景下违反系统、程序或平台规则,可能导致功能异常、数据损坏甚至安全漏洞的符。这种“非法性”并非绝对,而是由符所处的环境决定:同样一个“”,在聊天软件中是普通符号,在Windows文件名里却会被系统直接拒绝。 一、什么是非法符? “非法符”的核心是场景化的规则冲突。它的“非法”不是基于法律条文,而是基于具体场景的运行逻辑——当一个符的存在会干扰系统对信息的析、存储或传输,它就会被判定为“非法”。比如,路径分隔符“/”在文件系统中用于划分文件夹层级,若出现在文件名里,会让系统误以为是新路径;再比如,HTML中的“<”“>”用于标记标签,若在评论框输入“<script>alert('攻击')</script>”,会触发网页执行恶意脚本,因此被表单系统拦截。 二、常见场景中的非法符有哪些?

1. 系统文件名场景

不同操作系统对文件名有严格限制,目的是避免路径析错误。
  • Windows系统禁止的非法符:/:*?"<>|——这些符要么是路径分隔符/,要么是通配符*?,要么是特殊符号:"<>|,会干扰系统识别文件位置。
  • macOS系统禁止的非法符::——它会与文件扩展名的分隔符混淆如“文档.txt”中的“.”。

    2. 网页/APP表单输入场景

    为防止跨站脚本攻击XSS和SQL入,表单通常拦截以下符: <script>、、'、"、or 1=1--、%、&。比如“<script>”会触发恶意脚本执行,“' or 1=1--”会篡改SQL查询逻辑如将“SELECT * FROM users WHERE name='张三'”变成“SELECT * FROM users WHERE name='张三' OR '1'='1'”,“%”“&”则可能干扰URL参数析。

    3. 数据库操作场景

    SQL语句中,用于符串闭合的符会破坏查询逻辑,常见非法符: '、"、;。比如在“INSERT INTO users (name) VALUES ('李四')”中,若输入“李四'); DROP TABLE users; --”,会变成“INSERT INTO users (name) VALUES ('李四'); DROP TABLE users; --'”,直接删除整个表,因此这些符会被数据库接口拦截。

    4. 编程语法场景

    编程语言的变量名、函数名有严格命名规则,以下符通常非法: #、@、!、$、%、^、&、*、(、)、-、+、=、[、]、{、}、|、、;、:、'、"、<、>、?、/。比如Python中变量名不能以数,也不能包含“#”释符号或“@”装饰器符号;Java中变量名不能使用“$”以外的特殊符且“$”通常用于内部类。

    从文件名到代码变量,从表单输入到数据库查询,非法符的边界始终围绕“场景规则”展开。理这一点,就能避免因符使用不当导致的系统错误或安全问题。

延伸阅读:

    暂无相关