清理UniData的输入

时间:2009-10-30 14:00:24

标签: code-injection sanitization unidata u2 uniquery

任何人都可以提供清理UniData查询输入的功能吗?或者提供要删除的内容列表?

3 个答案:

答案 0 :(得分:3)

使用CONVERT一次删除单个非法字符,然后SWAP删除非法的多字符字符串。

在其他答案的基础上,你得到这个:

CONVERT ( '"' : "'/[\]^" ) TO "" IN USER.DATA
SWAP "..." WITH "" IN USER.DATA

答案 1 :(得分:2)

这是UniQuery保留的字符列表:

 " double quote
 ' apostrophe (single quote)
 / forward slash
 [ left square bracket
 \ back slash
 ] right square bracket
 ^ caret

您可以编写一个带字符串的快速函数,为每个字符执行SWAP - 您可以使用ISO 8859-1十进制代码进行交换(例如,]用于{{ 1}}) - 并返回sanatized字符串。

答案 2 :(得分:2)

除了Rob Sobers之外,还可以查找三.个/这些可以用作通配符,具体取决于您运行的模式,与[和]非常相似。

编辑评论:

我没有在我面前测试这个实例,但我相信你可以通过在VOC文件的'UOLOGIN'段落中明确地将ECLTYPE设置为'P'来改变它。

UOLOGIN就像登录一样。首次创建会话时调用它。不同之处在于UoomIN是为UniObjects会话调用的