之前发布的《运用HTTP Headers防护WEB进犯(Part1)》,《运用HTTP Headers防护WEB进犯(Part2)》中叙述了怎么运用HTTP Headers对WEB进犯进行防护,比方运用X-Frame-Options以及X-XSS-Protection。在本文中,咱们将探究怎么运用HTTP Headers捍卫咱们的Cookies。
简介
在用户会话中Cookies是一个非常重要的东西,一个身份验证的Cookies就适当所以暗码。捍卫这些身份验证的Cookies是一个非常重要的论题。在本文中,咱们将演示怎么在PHP运用中履行某些Cookies特点从而在某些进犯中维护咱们的Cookies。
运用HTTP Header维护Cookies
这是一个已知的现实,跨站脚本进犯是一个非常风险的缝隙,其能够让进犯者从用户浏览器窃取到Cookies。HttpOnly的引入能够禁用外部JavaScript脚本读取Cookies。即便运用程序自身存在XSS缝隙,只需敞开了HTTPOnly符号就无法读取Cookies。
现在咱们就打开上一篇文章中运用过的简略运用程序。
首要,调查HTTP呼应中的头信息
HTTP/1.1 200 OK
Date: Sun, 12 Apr 2019 15:07:14 GMT
Server: Apache/2.2.29 (Unix) mod_fastcgi/2.4.6 mod_wsgi/3.4 Python/2.7.8 PHP/5.6.2 mod_ssl/2.2.29 OpenSSL/0.9.8y DAV/2 mod_perl/2.0.8 Perl/v5.20.0
X-Powered-By: PHP/5.6.2
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: PHPSESSID=a2ed2bf468dd811c09bf62521b07a023; path=/
Content-Length: 820
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8
正如咱们所见,在Set-Cookie头中没有额定的符号。假如该运用存在Xss缝隙那么进犯者就能够轻松获取到Cookies信息。
为了防止这种状况,咱们能够运用HTTPOnly符号。这使得咱们只能够经过HTTP协议来发送Cookies信息,而不能运用JavaScript。
启用HTTPOnly符号
如下示例代码片段中演示了在PHP运用中启用HTTPOnly符号的一种办法:
php
ini_set("session.cookie_httponly", "True");
session_start();
session_regenerate_id();
if(!isset($_SESSION['admin_loggedin']))
{
header('Location: index.php');
}
if(isset($_GET['search']))
{
if(!empty($_GET['search']))
{
$text = $_GET['search'];
}
else
{
$text = "No text Entered";
}
}
?>
charset="UTF-8">
Admin Home
rel="stylesheet" href="styles.css">
id="home">
id=text> id="text2">Welcome to Dashboard... You are logged in as: php echo $_SESSION['admin_loggedin']; ?> href="logout.php">[logout]
action="" method="GET">
id="search">
id="text">Search Values type="text" name="search" id="textbox">
type="submit" value="Search" name="Search" id="but"/>
id="error"> id="text2">You Entered:php echo $text; ?>
从上面的代码片段中咱们能够看出下面这一行代码是用来敞开HTTPOnly的:
ini_set("session.cookie_httponly", "True");
接下来咱们就来看看在HTTPOnly符号敞开之后取得的HTTP头信息
HTTP/1.1 200 OK
Date: Sun, 12 Apr 2019 15:03:15 GMT
Server: Apache/2.2.29 (Unix) mod_fastcgi/2.4.6 mod_wsgi/3.4 Python/2.7.8 PHP/5.6.2 mod_ssl/2.2.29 OpenSSL/0.9.8y DAV/2 mod_perl/2.0.8 Perl/v5.20.0
X-Powered-By: PHP/5.6.2
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: PHPSESSID=36cb82e1d98853f8e250d89be857a0d3; path=/; HttpOnly
Content-Length: 820
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8
[1] [2] [3] 黑客接单网
URL : http://50.116.13.242/index.php3)实例我在峰会上说是被逼的,尽管仅仅开个打趣,可是也可以反映出做应急呼应是一件苦差事,有的时分要做到 7*24 小时呼应,我觉...
Web运用安全依然是互联网安全的最大要挟来历之一,除了传统的网页和APP,API和各种小程序也作为新的流量进口快速兴起,更多的流量进口和更易用的调用方法在进步web运用开发功率的一起也带来了更多和更杂...
例如,假如咱们从这个ArrayBuffer的Int8视图获取元素0和1,那么它将给出与Uint16视图中的元素0不同的值,即便它们包括完全相同的位。 下面是举例阐明的电话脚本在一个典型的应用程序中,一...
运用准备好的预处理句子/body>MS的一些言语,例如C#、VB、F#,都是在 CLR 中运转的。 能够将CLR理解为他们的运转环境。 [1][2][3][4]黑客接单渠道1:dnsenum -...
Edit——Chromium的开发人员正在致力于删去HTTP/0.9的支撑,这将使浏览器无法读取Redis和Memcached的呼应。 这是很大的前进,但仍然留下了能够履行的指令的或许性。 p...
Cobalt Strike 3.0 延用了其强壮的集体服务器功用,能让多个进犯者一起衔接到集体服务器上,同享进犯资源与方针信息和sessions。 当然,在运用Cobalt Strike之前,需求装置...