gpt4 book ai didi

regex - 这些字符在 HTML、Postgres 和 Bash 中使用是否安全?

转载 作者:行者123 更新时间:2023-11-29 14:17:34 25 4
gpt4 key购买 nike

我有一个项目,我试图让其他可能有敌意的编码人员以小写形式标记将在不同上下文中显示的各种属性,包括嵌入 HTML、在 Postgres 中保存和操作、用作属性标签在 JavaScript 中,并在 shell 中操作(例如,将数据文件保存为 продажи.zip)以及各种数据分析工具,如图形工具等。

我以前从事过多语言项目,但它们要么是不需要特别担心复杂攻击的较小客户,要么是我在多语言方面之后才加入的项目地方,所以我不是负责验证安全性的人。

我很确定这些应该是安全的,但我不知道是否有我需要注意的陷阱,比如中文字符集中的特殊 [TAB] 或 [QUOTE] 字符可能逃过我的逃跑。

我可以在我的正则表达式过滤器中使用这些吗?

dash       = '-'
english = 'a-z'
italian = ''
russain = 'а-я'
ukrainian = 'ґї'
german = 'äöüß'
spanish = 'ñ'
french = 'çéâêîôûàèùëï'
portuguese = 'ãõ'
polish = 'ąćęłńóśźż'
turkish = 'ğışç'
dutch = 'áíúýÿìò'
swedish = 'å'
danish = 'æø'
norwegian = ''
estonian = ''
romainian = 'șî'
greek = 'α-ωίϊΐόάέύϋΰήώ'
chinese = '([\p{Han}]+)'
japanese = '([\p{Hiragana}\p{Katakana}]+)'
korean = '([\p{Hangul}]+)'

最佳答案

如果您将自己限制为具有 7 位 ASCII 兼容子集的文本编码,那么将 0x7f (U+007f) 以上的任何内容视为“安全的”是相当安全的"在与大多数理智的编程语言和工具交互时。如果你使用 perl6,那你就不走运了 ;)

您应该避免支持或特别注意使用文本编码 Shift-JIS 的文本输入或输出,其中 ¥ 符号位于 0x5c 处,\ 通常位于该位置。这为利用编码转换进行恶意欺骗提供了机会。

避免或格外小心其他非 ascii 兼容的编码。 EBDIC 就是其中之一,但您不太可能在野外遇到它。 UTF-16 和 UTF-32 很明显,但如果您对它们进行错误处理,结果将非常明显。

阅读:

我个人认为您的方法是倒退的。您应该根据每个目标工具或语言的词法语法定义输入和输出函数以转义和取消转义字符串,而不是试图禁止任何可能的元字符。但是我不知道你的情况,也许这对你正在做的事情来说是不切实际的。

关于regex - 这些字符在 HTML、Postgres 和 Bash 中使用是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43170328/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com