我創建一個非常基本的iPhone模擬器,我想要做的只是把它在一個位置,然後我們有,並希望把它放在任何網站,我們只是把它用:http://www.example.com/iphone-test.php?url=http://www.example.com/mobile/PHP安全性 - 獲取變量,URL安全嗎?
有什麼我需要注意的可能是不安全的?沒有涉及數據庫或任何其他內容,但爲了防止有人想搞亂並在URL中放入一些內容,我可以做些什麼來幫助使這個更安全一點?
這裏是我的代碼:
<?php
if(isset($_GET['url'])) {
$url = $_GET['url'];
?>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>iPhone Test</title>
<style type="text/css">
#iphone {
background:url(iPhone.png) no-repeat;
width:368px; height:706px;
position:relative;
overflow:hidden;
}
#iphone iframe {
position:absolute;
left:30px;
top:143px;
border:0;overflow:hidden;
}
</style>
</head>
<body>
<div id="iphone">
<iframe src="<?=$url;?>" width="307" height="443"><p>Your Browser does not support iFrames.</p></iframe>
</div>
</body>
</html>
<?php
}
?>
編輯:感謝所有的幫助。我做了一些研究和這裏是我到目前爲止有:
<?php
include_once 'filter.php';
$filter = new InputFilter();
if(isset($_GET['url'])) {
if (filter_var($_GET['url'], FILTER_VALIDATE_URL)) {
$url = $filter->process($_GET['url']);
?>
來源:http://oozman.com/php-tutorials/avoid-cross-site-scripting-attacks-in-php/
類:http://www.phpclasses.org/browse/file/8941.html
你覺得呢?
那麼一開始,確保URL不是以'的JavaScript開始:'...,並且確保你有網址在傳遞到腳本之前,在客戶端對URL進行編碼。 – DaveRandom
不要相信客戶端對數據進行編碼以使服務器可以安全地插入到文檔中。 – Quentin