phpurl參數過濾
1. php原生寫法怎麼隱藏地址欄url的某些參數值
你所看到的BBS它並不能做到讓它的 url地址 不發生變化,不信你可以對著一個鏈接點右鍵,再點那個在新窗口打開。
怎麼樣,網址變化了吧。為什麼點擊的時候地址欄裡面的網址沒有發生變化呢,原因不用多說,他的網頁都在一個框架裡面,只要框架(frame)的url沒有在點擊的時候發生變化,則地址欄中的url就不會有變化。
如果你想和那個論壇的做法一樣,很簡單,請參照以下代碼:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>框架頁面</title>
</head>
<frameset cols="80,*" frameborder="no" border="0" framespacing="0">
<frame src="left.htm" name="leftFrame" scrolling="No" noresize="noresize" id="leftFrame" title="leftFrame" />
<frame src="right.htm" name="mainFrame" id="mainFrame" title="mainFrame" />
</frameset>
<noframes><body>
</body>
</noframes></html>
這里框架代碼,然後將 left.htm 換成你左邊列表的網址。
然後將 right.htm 換成你右邊內容的網址。
以上這段框架代碼的文件為 index.htm
請訪問 index.htm 查看效果。
2. php 怎樣過濾 ,地址欄指定參數
substr(0,strpos('&',$url),$url)
就是截取
3. php 純數字url參數安全過濾代碼
標准答案我就不知道了,只是我個人的理解大概是這個方面要注意:
1 [POST/GET]頁面參數傳值/字元串輸入/數據入庫等類似動作都要做好嚴格的危險字元過濾處理.
2 相關PHP的I/O操作,需要注意限制許可權,文件名或目錄名或內容都要做好過濾處理.
3 敏感信息(如PASSWORD/銀行帳號等)不要依賴COOKIE,SESSION,最好讀表,並盡量緩存讀表數據.
4 注意對網站根目錄及下面所有子目錄及文件的許可權控制與保護,不要讓配置文件/系統信息等文件暴露.
5 要完全屏掉所有出錯提示,或者能捕獲所有出錯並重新定製輸出,以防報錯信息泄露你的網站及相關文件路徑,MYSQL欄位/網站環境等.
6 所有對庫表的寫入與讀取操作都需要做好訪問來路限制/同IP同內容讀寫間隔限制/並驗證POST與GET的指定標識KEY的有效性等這些安全動作.
7 有類似文件下載/或文本流下載等功能的,盡量不要在URL裡面直接調用目標文件地址的方式來做,最好是傳ID或是指定的NAME標識.
8 MYSQL 的用戶最好分開,不要用ROOT用戶來連接MYSQL,另建專用用戶,並限制死此用戶的許可權,只能操作指定的庫,最好去掉此用戶的命令行導入導出的許可權等這些危險的許可權.
4. php 商城屬性篩選功能url構造
按照屬性組進行構造,前面參數為屬性組名後面的參數為屬性組屬性。譬如:price=1,price為屬性,1為屬性具體的屬性,可以是具體的也可以是模糊的,URL構造可以使用&或者是用/都可以。
5. PHP中有必要過濾URL傳遞過來的參數嗎 - PHP進階討論
很多注入式攻擊就是通過簡單的url傳遞過來的,一般的原則是不要相信任何用戶的輸入
6. php如何提取url中參數中的url裡面的參數
你應該說的是用GET方法傳送表單吧。這里的參數可以用PHP提供的數組GET[ ],來解決。例如:要提取這個jb_id,可以先聲明個變數:$jb_id=$_GET['jb_id']; 注意這里的變數名並不唯一。格式是:$變數名=$_GET[參數名];
你這個例子可寫一下代碼:
$jb_id=$_GET['jb_id'];
$id=$_GET['id'];
$sj=$_GET['sj'];
執行後, $jb_id值就是:11111 ,$id值就是:99999,$sj值就是:hsdbd
然後像處理一般變數那麼處理。
不知道你明白不?其實你也可以用POST方式傳遞參數,用法跟GET完全相同,只是表單中的方式要改為:POST
7. php利用框架隱藏URL上的參數,具體怎麼做
設置許可權不就得了?
比如必須登錄才能查看
或者
某一類用戶登錄才能查看等等!
或者你比如的用戶id=1的用戶登錄之後,你在登錄處理頁面把這個用戶的id寫入到session啊
比如: $_SESSION['id']=1;
然後你在修改資料頁面,sql語句查詢就這樣
$Sql='select*from表名稱whereid='.$_SESSION['id'];
這樣,就避免了get傳參的危險啊!
url中get參數是可以改的,就算你隱藏了也沒有用,別人照樣可以拼寫url進行操作啊
無論你怎麼隱藏法,你接受這個參數還不是得$_GET不是?
況且,要達到你這個運行方式,那隻能對伺服器進行做文章,比如url重定向
就是把 index.php?id=1變成 index/1/這種格式,但他還不是有個1?,別人就不能改為2?
當然,也可以直接把inedx.php定向到index.php?id=1,但問題是,你這樣等於把參數定死了,那誰登陸都是id=1
所以,你要index.php能直接指向多個參數,那你用url傳參顯然是不可能的!
而$_SESSION是存儲在服務端的,除非你寫代碼去改變,否則客戶端用戶是無法去更改的!
8. php 正則替換url參數 比如頁數p=x 如何實現
echo$url='?s=view&p=5';
echo'<br>';
$p=6;
echopreg_replace('/p=([d]+)/','p='.$p,$url);
echo'<br>';
echopreg_replace('/([d]+)/',$p,$url);
另外 為什麼
echo preg_replace('/^p=.*$/', $p, $url);
有問題
/^p=.*$/ 匹配的是以p開頭以任意字元結尾的字元串,而?s=view&p=5 很明顯不是以p開頭的,所以匹配失敗,返回原字元串 $url;
9. php url參數加密
用這個加密:base64_encode ( string $data )
<?php
$str = 'This is an encoded string';
echo base64_encode($str);
?>
用這個解密:base64_decode ( string $data [, bool $strict= false ] )
<?php
$str = '==';
echo base64_decode($str);
?>
10. php 怎麼過濾後url後面的綴名
$_GET['id']='sdfsf.5.jpg';
$new_str= strrev($str);
$new_str1=substr($new_str,strpos($new_str, ".")+1);
echo strrev($new_str1)