1

我有一个公共存储过程 (STP),我希望能够通过 ajax 识别哪个页面正在调用它。

STP 暂时设置为使用访客帐户运行,因此是公开的。

我想通过在 STP 变量中插入一个密钥来做到这一点。
但是用户可以在 url 中更改该密钥。

有没有一种方法可以在不让用户更改它的情况下识别它?

也许有一个保留的 STP 变量告诉请求的来源(如服务器名称或 ip 或可识别的东西)?
但我在其中找不到任何:

_debug
_grafloc
_htcook
_htua
_program
_reqmeth
_rmtaddr
_rmthost
_srvname
_srvport
_url
_userlocale
_username
_version

http://support.sas.com/rnd/itech/doc9/dev_guide/stprocess/reserved.html

4

1 回答 1

1

更改我的答案,因为我以前不正确。您可以(通过)获取此信息,_htrefer但它需要对您的 SAS 服务器进行配置更改。根据文档

_HTREFER:指定引用页面的地址。默认情况下未设置此变量,但可以在 params.config 文件中启用。

值得注意的是,没有任何方法是 100% 可靠的,因为最终用户总是可以操纵他们的请求。

于 2017-08-29T23:38:08.100 回答