【发布时间】:2010-12-11 14:54:51
【问题描述】:
谁能提供一个功能来清理 UniData 查询的输入?或者提供要删除的内容列表?
【问题讨论】:
标签: code-injection sanitization unidata u2 uniquery
谁能提供一个功能来清理 UniData 查询的输入?或者提供要删除的内容列表?
【问题讨论】:
标签: code-injection sanitization unidata u2 uniquery
这是 UniQuery 保留的字符列表:
" double quote
' apostrophe (single quote)
/ forward slash
[ left square bracket
\ back slash
] right square bracket
^ caret
您可以编写一个接受字符串的快速函数,为这些字符中的每一个执行SWAP--您可以与 ISO 8859-1 十进制代码交换(例如,] 与 ])--并返回经过清理的字符串。
【讨论】:
除了 Rob Sobers 的答案之外,还寻找三重 .'s/ 这些可以用作通配符,具体取决于您运行的模式,与 [ 和 ] 非常相似。
编辑评论:
我面前没有实例来测试它,但我相信您可以通过在 VOC 文件的“UOLOGIN”段落中将 ECLTYPE 显式设置为“P”来更改它。
UOLOGIN 就像登录。首次创建会话时调用它。区别在于 UniObjects 会话调用 UOLOGIN
【讨论】:
使用 CONVERT 一次性删除单个非法字符,然后使用 SWAP 删除非法多字符串。
在其他答案的基础上,您会得到:
CONVERT ( '"' : "'/[\]^" ) TO "" IN USER.DATA
SWAP "..." WITH "" IN USER.DATA
【讨论】: