草庐IT

php curl -k 或 --insecure, -X

coder 2023-06-13 原文

使用 PHP 和 curl,我需要通过代理连接到受 SSL 保护的站点,并且忽略证书警告。我的 curl 命令行如下所示:

curl -k -u username:password -X GET https://someURL

通过 curl.php,我看到了我认为正确的设置选项。有了他们,我最终会得到这样的结果:

  $ch = curl_init("https://someURL");
  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); // Ignore cert errors?
  curl_setopt($ch, CURLOPT_PROXY, true);           // Proxy true?
  curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");     
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);            
  curl_setopt($ch, CURLOPT_USERPWD, "username:password");      
  $result = curl_exec($ch);

但是,$result 总是返回 false。我的密码中有一个特殊字符“!”。也许我需要逃避它?除此之外,还有其他想法吗?

最佳答案

要完全禁用 ssl 证书检查,curl 知道选项 CURLOPT_SSL_VERIFYPEER。如果将其设置为 false,则将完全禁用证书检查。由于默认值为 true,因此您必须添加:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

来自 PHP documentation :

CURLOPT_SSL_VERIFYPEER FALSE to stop cURL from verifying the peer's certificate. Alternate certificates to verify against can be specified with the CURLOPT_CAINFO option or a certificate directory can be specified with the CURLOPT_CAPATH option. TRUE by default as of cURL 7.10. Default bundle installed as of cURL 7.10.

请注意,如果禁用证书检查,您可以省略 CURLOPT_SSL_VERIFYHOST 设置。因此可以删除以下行:

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

您还询问以下设置是否正常:

curl_setopt($ch, CURLOPT_PROXY, true);

来自 PHP documentation :

The HTTP proxy to tunnel requests through.

表示如果您使用代理,它接受像“192.168.0.1:3128”这样的代理地址。 true 在这种情况下没有意义

关于php curl -k 或 --insecure, -X,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15232977/

有关php curl -k 或 --insecure, -X的更多相关文章

  1. ruby - 如何解决 PATH 中的 Insecure world writable dir/usr,Ruby 模式 040777 警告? - 2

    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/universal-darwin13/rbconfig.rb:213:警告:不安全的世界可写目录/usr路径,模式040777我在Stackexchange上搜索解决方案后尝试了这两个命令,但它对我不起作用。它仍然显示我在上面粘贴的警告。sudochmod775/usr/localsudochmodgo-w/usr/local/bin如何修复此警告消息?我正在运行OSX10.9Mavericks 最佳答案

  2. ruby-on-rails - 启动 Rails 服务器时出错 : warning: Insecure world writable dir/usr in PATH, 模式 040777 - 2

    这个问题在这里已经有了答案:Gettingthewarning"Insecureworldwritabledir/home/chance"inPATH,mode040777forrailsandgem(6个答案)关闭8年前。我正在学习Treehouse上的Ruby教程,但在启动Rails服务器时,我不断收到以下错误:/usr/local/rvm/gems/ruby-1.9.3-p392@global/gems/bundler-1.2.4/lib/bundler/runtime.rb:197:warning:Insecureworldwritabledir/usrinPATH,mode0

  3. javascript - jquery ajax https 调用给出 ERR_INSECURE_RESPONSE - 2

    我正在尝试从jquery到node.js进程进行httpsCORSajax调用。然而,每当调用时,chrome都会在控制台中提示OPTIONShttps://localhost/net::ERR_INSECURE_RESPONSE。查看类似的堆栈溢出问题,CrossdomainrequestfromHTTPtoHTTPSabortsimmediately如果我导入我制作的自签名证书,我应该能够进行跨源httpsajax调用。所以我将证书导入了chrome。我可以在权限下的chrome管理证书选项卡中看到证书。但是当我尝试ajax调用时它仍然失败。这就是我制作私钥的方式:opensslg

  4. javascript - rails 5 : Access to geolocation was blocked over insecure connection to http://localhost:3000 - 2

    我正在为我的Rails应用程序使用html5地理定位,但是当我单击tryit按钮时,以下错误出现在safari浏览器控制台下的显示网络检查器控制台:getLocation—localhost:83[blocked]Accesstogeolocationwasblockedoverinsecureconnectiontohttp://localhost:3000.代码如下:TryItvarx=document.getElementById("demo");functiongetLocation(){if(navigator.geolocation){navigator.geolocati

  5. javascript - jQuery:Javascript 在设置值时抛出错误 "The operation is insecure" - 2

    我正在尝试为不解释输入元素的占位符属性的浏览器寻找后备解决方案。我有这个简单的jQuery脚本,但它会抛出一个错误SecurityError:"Theoperationisinsecure.this.value=val;"这是我的脚本:$('document').ready(function(){$('input').each(function(){if($(this).val()===''|| $(this).val()===undefined){$(this).val($(this).attr('placeholder'));}});});有人知道我能做什么吗?或者我做错了什么?或

  6. javascript - 尝试向 CSS 样式表添加规则在 Firefox 中给出 "The operation is insecure" - 2

    我正在使用Greasemonkey并尝试在特定域中添加规则。但它会导致错误提示Theoperationisinsecure。该代码在Chrome上运行良好。脚本在http://mydomain.com/test/test.php上运行CSS文件是http://cdn.mydomain.com/test/css/global.css我的功能:functioncss(selector,property,value){for(vari=0;i在谷歌上我发现这可能是因为我试图访问跨域,所以我尝试将CSS文件的URL添加到“接受的URL”但没有结果。我该如何解决这个问题?

  7. javascript - Javascript 中的 ERR_INSECURE_RESPONSE 处理提示 - 2

    我们的Web应用程序有很多ajax调用,而且都是https请求(我们的IT团队要求),是的,我们已经打开header以允许跨域。但问题是我们有自己的自定义证书,内部用于我们所有的应用程序,所以基本上我在调用ajax时出错:Failedtoloadresource:net::ERR_INSECURE_RESPONSE如果我在浏览器中打开URL并接受证书,ajax调用就可以正常工作。所以我的问题是,有没有办法通过Javascript来处理这个问题?或者添加受信任的证书会解决这个问题吗?此外,即使在我们添加受信任的证书后,我还会再次面临ajax中的任何问题吗?注意:我们正在chrome浏览器

  8. java - 如何在 java 中修复 Mass Assignment : Insecure Binder Configuration (API Abuse, Structural) - 2

    我有一个Controller类,其中包含以下两种查找医生的方法(上下文已更改)。获取MassAssignment:InsecureBinderConfiguration(APIAbuse,Structural)两种方法都出现错误。@Controller@RequestMapping(value="/findDocSearch")publicclassController{@AutowiredprivateIFindDocServicefindDocService;@RequestMapping(value="/byName",method=RequestMethod.GET)@Resp

  9. c++ - 从 C++ 调用 NSLog : "Format string is not a string literal (potentially insecure)" - 2

    当我从C++调用NSLog时,Xcode提示传递给NSLog的格式字符串不是文字字符串。这是触发警告的一行代码:NSLog(CFSTR("Leaking?"));我不知道有什么方法可以在C++中编写NSString文字,而且我没有看到可以在项目设置中关闭的相关警告。有没有办法在不触发此消息的情况下从C++调用NSLog?我正在使用Xcode4.2.1。编辑:这确实是C++代码。我通常避免使用Objective-C++,坚持使用Objective-C或普通的旧C++,因为没有官方文档说明什么在Objective-C++中有效,什么无效。我只发现模糊的警告(例如)STL的某些部分可能存在问

  10. ios - Objective-C: "format string is not a string literal (potentially insecure)"宏警告 - 2

    我正在使用宏来简化返回本地化字符串的过程,如下所示:#defineGetLocalStr(key,...)\[NSStringstringWithFormat:[[NSBundlemainBundle]localizedStringForKey:keyvalue:@""table:nil],##__VA_ARGS__]基本上,如果您在本地化字符串文件中有一个条目,例如"name"="Mynameis%@";,调用GetLocalStr(@"name",@"Foo");将返回NSString@"MynameisFoo"但是,当我运行它时,例如:NSString*str=GetLocalS

随机推荐