国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網(wǎng)站 > Nginx > 正文

如何在Nginx反向代理的CakePHP中檢測(cè)SSL?

2024-08-30 12:23:45
字體:
供稿:網(wǎng)友
  我使用nginx作為負(fù)載平衡器,后面是Apache應(yīng)用服務(wù)器。由于SSL連接在負(fù)載平衡器處終止,因此$ b b $ b $ _ SERVER ['HTTPS'] $ b
  找到一個(gè)安全的方式來檢測(cè)應(yīng)用服務(wù)器上的HTTPS。
到目前為止,我把它放到我的CakePHP配置中:
  $ request_headers = getallheaders();
  if((isset($ _ SERVER ['HTTPS'])&& $ _SERVER ['HTTPS'])||(isset($ request_headers ['X-Forwarded-Proto'])&& $ request_headers ['X-Forwarded-Proto'] =='https')){$ ssl = true;
  //覆蓋環(huán)境vars(ugly),因?yàn)镃akePHP不會(huì)支持X-Forwarded-Proto$ _SERVER ['HTTPS'] ='on';
  $ _ENV ['HTTPS'] ='on';
  } else {
  $ ssl = false;
  }
  然后在nginx配置中,我使用了 proxy_set_header X-Forwarded-Proto https; 將標(biāo)記添加到負(fù)載均衡器和后端應(yīng)用程序服務(wù)器之間的任何請(qǐng)求。
  這完全正常,但任何人直接請(qǐng)求應(yīng)用程序服務(wù)器可能會(huì)欺騙他們認(rèn)為他們正在瀏覽SSL,當(dāng)他們不是。我不知道這是否是一個(gè)安全風(fēng)險(xiǎn),但它似乎不是一個(gè)好主意。
  這是一個(gè)安全風(fēng)險(xiǎn)嗎?
  因?yàn)槭褂?X-Forwarded-Proto 看起來像標(biāo)準(zhǔn)的標(biāo)準(zhǔn),解決方案可能是一個(gè)很好的補(bǔ)丁提交給CakePHP核心,所以我認(rèn)為任何答案都可以合法地涉及編輯核心文件。
解決方案:
  mod_rpaf 會(huì)讓你這樣做。
  這會(huì)設(shè)定Apache的HTTPS值到“on”基于nginx發(fā)送的頭,所以Cake將開箱即用(以及Apache中運(yùn)行的任何其他應(yīng)用程序)。
  它還會(huì)更正REMOTE_ADDR,SERVER_PORT和HTTP_HOST的值。
  這是我的示例config:
  < IfModule mod_rpaf.c>
  RPAF_Enable On
  RPAF_ProxyIPs 127.0.0.1 10.0.0.0/24
  RPAF_SetHostName On
  RPAF_SetHTTPS On
  RPAF_SetPort On
  < / IfModule>
  #如果mod_rewrite重定向,那么我們失去HTTPS狀態(tài)為REDIRECT_HTTPS。
  #這將重置它。這發(fā)生在Cake的前臺(tái)控制器
  < IfModule setenvif_module>
  SetEnvIf REDIRECT_HTTPS on HTTPS = on
  < / IfModule>
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 海安县| 滁州市| 宁国市| 建宁县| 揭阳市| 宝山区| 云霄县| 武宣县| 子洲县| 南皮县| 巴里| 青海省| 耿马| 额济纳旗| 芜湖县| 清原| 双鸭山市| 西吉县| 普陀区| 德庆县| 文山县| 孝义市| 克什克腾旗| 青冈县| 肥西县| 巫山县| 睢宁县| 沙田区| 衡水市| 泽普县| 隆德县| 沙河市| 三门县| 基隆市| 新干县| 大邑县| 峨山| 通渭县| 右玉县| 舞阳县| 于田县|