1. 如何進(jìn)行防 SQL 注入
1.表單盡量用 post,表單判斷控制走 get,因?yàn)?get 比 post 速度快
2.用$_SERVER[HTTP_REFERER]判斷提交者的源頭
3.開啟 addslashes,在’,“,\頭加\,addslashes默認(rèn)就是開啟的是為了讓含有單雙引號(hào)和反斜杠的sql語句正常執(zhí)行
4.密碼一定設(shè)置 md5 加密
5.采用預(yù)處理,先解析sql,再綁定參數(shù)
6.服務(wù)器本身的安全(web+mysql)
2. 如何防止盜鏈
1.服務(wù)器上防止
Apache 和 nginx 做 rewrite 基于源來做判斷阻止盜鏈
2.代碼防止
在頁面加判斷語句,用$_SERVER[HTTP_REFERER]檢測(cè)請(qǐng)求頁面的域名或者ip,如果不是同域請(qǐng)求,就提示錯(cuò)誤。比如復(fù)制一個(gè)新浪博客的美女圖片(如圖1)鏈接的地址,在自己的網(wǎng)站中使用,圖片會(huì)顯示如下(如圖2)。這就是防盜鏈功能。經(jīng)測(cè)試,個(gè)別網(wǎng)站似乎可以破解這種防盜鏈的機(jī)制,比如簡(jiǎn)書,這里就是直接用的新浪博客的的圖片鏈接,簡(jiǎn)書先訪問到外部網(wǎng)站的圖片,然后保存到簡(jiǎn)書自己的服務(wù)器上。這也算一種破解防盜鏈的方法吧。
3. 下面代碼的執(zhí)行結(jié)果是什么?
<?php
echo 1+2+"3+4+5";
?>
答案是6
echo 1+2
是3
echo "3+4+5"
是3,因?yàn)?code>"3+4+5"是字符串,看的是第一個(gè)數(shù)值,強(qiáng)制轉(zhuǎn)類型是(int)"3+4+5"
把3+4+5強(qiáng)制轉(zhuǎn)為數(shù)值類型,結(jié)果是3。所以答案是6.
4. http狀態(tài)碼
- 200正常相應(yīng)
- 302地址重定向,一般是通過rewrite實(shí)現(xiàn)
- 304緩存未過期
- 403權(quán)限不足
- 404訪問的頁面不存在
- 服務(wù)器內(nèi)部錯(cuò)誤
5. 如何讓禁用cookie的客戶端還可以實(shí)現(xiàn)session數(shù)據(jù)共享?
打開php配置文件php.ini
把session.use_trans_sid = 0,修改為 =1。a鏈接的后面會(huì)自動(dòng)帶上session_id
6. 用 PHP 實(shí)現(xiàn)冒泡排序,將數(shù)組$a = array()按照從小到大的方式進(jìn)行排序。
<?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. 寫一個(gè)把含有下劃線的字符串轉(zhuǎn)為駝峰樣式的字符串:
<?php
function transform($str){
return str_replace(' ', '', ucwords(str_replace('_', ' ', $str)));
}
echo transform('index_php_function');
?>