php_2

1. 如何進行防 SQL 注入

1.表單盡量用 post,表單判斷控制走 get,因為 get 比 post 速度快
2.用$_SERVER[HTTP_REFERER]判斷提交者的源頭
3.開啟 addslashes,在’,“,\頭加\,addslashes默認就是開啟的是為了讓含有單雙引號和反斜杠的sql語句正常執行
4.密碼一定設置 md5 加密
5.采用預處理,先解析sql,再綁定參數
6.服務器本身的安全(web+mysql)

2. 如何防止盜鏈

1.服務器上防止
Apache 和 nginx 做 rewrite 基于源來做判斷阻止盜鏈
2.代碼防止
在頁面加判斷語句,用$_SERVER[HTTP_REFERER]檢測請求頁面的域名或者ip,如果不是同域請求,就提示錯誤。比如復制一個新浪博客的美女圖片(如圖1)鏈接的地址,在自己的網站中使用,圖片會顯示如下(如圖2)。這就是防盜鏈功能。

經測試,個別網站似乎可以破解這種防盜鏈的機制,比如簡書,這里就是直接用的新浪博客的的圖片鏈接,簡書先訪問到外部網站的圖片,然后保存到簡書自己的服務器上。這也算一種破解防盜鏈的方法吧。

圖1

圖2
3. 下面代碼的執行結果是什么?
<?php
echo 1+2+"3+4+5";
?>

答案是6
echo 1+2是3
echo "3+4+5"是3,因為"3+4+5"是字符串,看的是第一個數值,強制轉類型是(int)"3+4+5"把3+4+5強制轉為數值類型,結果是3。所以答案是6.

4. http狀態碼
  1. 200正常相應
  2. 302地址重定向,一般是通過rewrite實現
  3. 304緩存未過期
  4. 403權限不足
  5. 404訪問的頁面不存在
  6. 服務器內部錯誤
5. 如何讓禁用cookie的客戶端還可以實現session數據共享?

打開php配置文件php.ini
把session.use_trans_sid = 0,修改為 =1。a鏈接的后面會自動帶上session_id

6. 用 PHP 實現冒泡排序,將數組$a = array()按照從小到大的方式進行排序。
<?php
$arr=array(1,323,66,85,200,2,16);
function mysort($arr){
    for($i=0;$i<count($arr)-1;$i++){
        for($j=0;$j<count($arr)-1;$j++){
            if($arr[$j]>$arr[$j+1]){
                $a=$arr[$j];
                $arr[$j]=$arr[$j+1];
                $arr[$j+1]=$a;
            }
        }
    }
    return $arr;
}
$newArr=mysort($arr);
echo "<pre>";
print_r($newArr);
echo "</pre>";
7. 寫一個把含有下劃線的字符串轉為駝峰樣式的字符串:
<?php 
function transform($str){
    return str_replace(' ', '', ucwords(str_replace('_', ' ', $str)));
}
echo transform('index_php_function');
 ?>
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • array_push — 將一個或多個單元壓入數組的末尾(入棧) [] 用方括號的語法新建/修改可以通過明示地設定...
    icy2003閱讀 1,233評論 1 3
  • PHP——2(PHP變量作用域)PHP——3(PHP變量分離/引用(Variables Separation))為...
    iscona閱讀 167評論 0 0
  • Alpaca-PHP-2.0 簡介 Alpaca-PHP-2.0 簡介 Alpaca-PHP 是一款輕量的PHP-...
    大彈簧CC閱讀 439評論 0 0
  • 我們都知道如果在php里面想計算2的n次方一般都會用采用系統內置函數pow(),或者手動寫一個for循環去處理 但...
    簡單方式閱讀 2,705評論 1 6
  • 文/那年沐子 和她認識兩年。異地。 習慣了每天來自她的問候,來自她的家長里短,趣聞軼事,也習慣了附和閑聊幾句。 她...
    那年沐子閱讀 342評論 0 0