SOAP查询变量,要转义还是不转义



我正在用PHP构建一个桥接脚本,通过SOAP连接到本地web服务框架。该脚本是对web服务的唯一公共访问,它通过GET获取值,编写查询,将其发送到web服务,并通过JSON返回结果。脚本接受的变量应该都是字符串。(任何数组都会被转换成字符串)。

我的问题是,因为唯一的公共访问web服务是通过这个脚本,是通过$_GET抓取参数['…’]并将它们直接输出到SOAP格式以查询最安全的方法?我是否应该对GET值执行某种转义来补充SOAP本机转义?

为了清楚起见,我在下面概述了这个过程。**是问题所在)
  1. HTTP GET脚本
  2. 脚本将GET值存储到变量**
  3. 将变量组成SOAP查询格式
  4. 发送组合查询到SOAP服务器
  5. 从SOAP服务器接收响应
  6. 输出响应为JSON

谢谢!

从你的问题中很难理解你想要逃避什么,但让我们来看看。

通常,您想要Filter-In, Escape-Out。这意味着,当您在应用程序外部的任何位置接受来自的输入时,您希望对其进行过滤。

但是过滤器是什么意思呢?

它的意思是确保它是有效的。如果您期望得到一个字母数字组成的用户名,而有人传入了一个带有符号的用户名,请拒绝它。这是过滤…

然后,当您去输出数据时,您希望将其转义为您要输出的上下文。

如果你在HTML正文中写它,你会使用像html_special_chars这样的东西。如果你要发送给数据库,你要么使用一个准备好的语句,要么使用特定于数据库的转义算法转义它。

那么在你的情况下我们该怎么办呢?

嗯,您正在将它发送到一个库以进行SOAP请求。该库应该处理SOAP请求的转义。

考虑到您不知道远程服务要对它做什么(在上下文中),转义它是远程应用程序的工作。

所以不,你不应该做任何转义。

但是一定要过滤输入以确保它在你期望的域中是有效的

最新更新