我很难找到一种将用户输入的SQL(如搜索条件)发送到后端服务器的好方法。
我有一个基于Spring(java)的后端和Oracle DB的角度应用程序。后端服务器公开REST服务以接收此输入。
用户可以在文本区域中输入以下搜索字符串(用户可以获取帮助以创建此搜索字符串)。我的目标是将以下示例搜索条件发送到后端服务器。
'Customer Name' == 'John Doe' AND 'Customer ID' == 123 AND 'Department' == ('Engineering' OR 'Sales')
我能想到的一种方法是将此SQL文本字符串转换为JSON对象并将其发送到服务器。
在这种情况下,如何将带有操作数的字符串转换为JSON对象?我可以将上面的示例字符串转换为如下所示的JSON对象吗?
{
"AND": {
"operation1": "'Customer Name' == 'John Doe'",
"operation2": "Customer ID' == 123",
"operation3": {
"OR":{
"operation4":"'Department' == 'Engineering'",
"operation5":"'Department' == 'Sales'"
}
}
}
}
此对象的问题是,它看起来太具体到这种情况,并且服务器很难清理输入并将其转换回实际的查询字符串。
此外,我不能将此字符串发送到后端,因为会出现XSS或SQL注入问题。
有人建议将这些数据发送到后端吗?如果JSON方法是一种很好的方法,有没有更好的方法将上面的字符串转换为JSON对象?
答案 0 :(得分:1)
将输入转换为URL查询字符串,就好像表单中包含字段"客户名称","客户ID"和"部门"。