日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

PHP应用程序安全

發布時間:2024/4/14 php 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PHP应用程序安全 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
繼續PHP應用程序安全的探討,主要一定要注意以下幾個方面:

1 過濾SQL注入攻擊
??? 可以使用addslashes等PHP內置的直接給出函數,方便使用
function VerifyInput($input)
{

?
????? if (!get_magic_quotes_gpc())
????? {?
???????//magic_quotes_gpc默認是on的,已經會自動轉義'號等字符了
????????? $input = addslashes($input);?
?????? }

?
}
而在顯示時則用
<? echo htmlentities(stripslashes(....))?>正常顯示之

??????? 或者干脆就用 mysql_real_escape_string函數過濾,就很方便了
2 要注意判斷變量的類型,比如要判斷輸入的變量是否是整型
if (is_numeric($pid)).........
?? 但還要對長度進行一下限制,最好寫一個函數來判斷是否是純數字,比如
? if (strlen($pid)){
if (!ereg("^[0-9]+$",$pid) && strlen($pid) > 5){


給出一個例子
? ....................
?/**
? *?檢測 $val 是否為純數字
? *?@param $val 用戶輸入的值
? *?@param $stuff 為 true 時 $val 必須填寫, 為 false 時 $val 不是必須要填寫的
? *?@param $mixLen 為數值時,表示 $val 的值必須達到 $mixLen 的長度, 如不須檢測填 -1 即可
? *?@param $maxLen 為數值時,表示 $val 的值必須小于 $maxLen 的長度, 如不須檢測埴一大數值即可
? *?@return $val 格式合法則返回 true, 否則返回 false
? */
?function checkNumberOnly($val, $stuff, $mixLen, $maxLen)
?{
??if($stuff == true)
??{
???if($val == "")
????return false;
???if(strlen($val) < $mixLen || strlen($val) > $maxLen)
????return false;
???if(!eregi("^[0-9]+$", $val))
????return false;
??}
??else if($stuff == false)
??{
???if($val != "")
???{
????if(strlen($val) < $mixLen || strlen($val) > $maxLen)
?????return false;
????if(!eregi("^[0-9]+$", $val))
?????return false;
???}
??}
??return true;
?}
?
3? 清除用戶輸入的HTML標記,如果確定用戶不需要輸入HTML標記的話,則要過濾掉,比如
??$name = strip_tags($_POST['name']);
?用strip_tags清除HTML標記
再判斷是否符合字母,數字的規則
$name = cleanHex($name);
function cleanHex($input){
$clean = preg_replace\
("![\][xX]([A-Fa-f0-9]{1,3})!", "",$input);
return $clean;
}

如果要完整還原用戶輸入的HTML標記的話,可以用htmlspecialchars()?實現

4 防止遠程表單提交
??? 防止用戶將表單頁面保留下來,再去修改提交,可以使用token令牌驗證的方法,如
<?php
session_start();

if ($_POST['submit'] == "go"){
?if ($_POST['token'] == $_SESSION['token']){
? $name = strip_tags($_POST['name']);

?}else{
??
}
}

$token = md5(uniqid(rand(), true));
$_SESSION['token']= $token;


?>


<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
<p><label for="name">Name</label>
<input type="text" name="name" id="name" size="20" maxlength="40"/></p>
<input type="hidden" name="token" value="<?php echo $token;?>"/>
<p><input type="submit" name="submit" value="go"/></p>
</form>?

?

???
??
?
??

總結

以上是生活随笔為你收集整理的PHP应用程序安全的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。