我有一些网站的代码,其中使用了cURL(不是“我的”......是开源项目的一部分),并且在几个月后第一次在我的VM的localhost上加载了网站,因为我想要为了帮助解决最近出现的与cURL无关的问题,我修复了一个本地问题,这对我来说很明显,现在当我尝试登录该网站时出现此错误
curl_setopt(): Curl option contains invalid characters (\0)
无论我搞砸了什么,这似乎都在尝试加载任何页面而不仅仅是登录页面。 这是它指向的代码行
curl_setopt($re, CURLOPT_COOKIE, "slim_session=".$_COOKIE['slim_session'].";");
如果有帮助,通过error_log()
我发现$_COOKIE['slim_session']
的值为a:4:{s:10:"slim.flash";a:0:{}s:11:"AccessToken";O:48:"SolasMatch\\Common\\Protobufs\\Models\\OAuthResponse":4:{s:8:"
不幸的是,cURL不是我的强项,但我可以根据需要提供更多有关情况的信息。您可以看到上述代码来自here的完整功能。
答案 0 :(得分:1)
问题是受保护的属性是以特殊方式序列化的,即:
s:14:"\000*\000_descriptor";N
在将cURL选项设置为this security issue所做更改的一部分时,不允许使用这些空字符。
以这种方式传递序列化对象是有风险的,除非这些值来自可靠来源或带有防篡改签名。您可以通过编码序列化值的第一个URL来使其工作。
curl_setopt($re, CURLOPT_COOKIE, "slim_session=" . urlencode($_COOKIE['slim_session']) . ";");