網站防止被寫入php(如何防止網站被入侵)

  • 1、PHP面試題如何防止伺服器資源被其他網站盜用,並寫出相關代碼?
  • 2、用php寫的網站可以用什麼工具來檢查它是否被掛馬被植入後門了???
  • 3、PHP里如何讓自己網頁的內容防止被複制的代碼?
  • 4、自己寫的php代碼,怎樣保證網站的安全性?
  • 5、如何防止代碼注入攻擊在PHP
  • 6、PHP網站怎麼sql注入?有沒有破解防禦的方法?

得看是什麼資源了

1,如果是媒體(圖片,聲音,視頻),則是使用Rewrite的重定向,要實現這個東西很簡單,貌似你問問度娘《圖片防盜鏈》就有你看不完的答案了。

2,如果是重要的文件(如配置文件或其它的),那就一定要用 .htaccess文件了。

在 .htaccess文件中寫入以下代碼:

Order Deny,Allow

Deny from all

Allow from 127.0.0.1

只可讓本機訪問,其它全部拒絕,保存。放到你要設防的目錄下。之後,你那目錄就安全了

清馬

1、找掛馬的標籤,比如有script language=”javascript” src=”網馬地址”/script或iframe width=420 height=330 frameborder=0

scrolling=auto src=網馬地址/iframe,或者是你用360或病殺毒軟體攔截了網馬網址。SQL資料庫被掛馬,一般是JS掛馬。

2、找到了惡意代碼後,接下來就是清馬,如果是網頁被掛馬,可以用手動清,也可以用批量清,網頁清馬比較簡單,這裡就不詳細講,現在著重講一下SQL資料庫清馬,用這一句語句「update 表名 set 欄位名=replace(欄位名,’aaa’,”)」, 解釋一下這一句子的意思:把欄位名里的內容包含aaa的替換成空,這樣子就可以一個表一個表的批量刪除網馬。

在你的網站程序或資料庫沒有備份情況下,可以實行以上兩步驟進行清馬,如果你的網站程序有備份的話,直接覆蓋原來的文件即可。

修補漏洞(修補網站漏洞也就是做一下網站安全。)

1、修改網站後台的用戶名和密碼及後台的默認路徑。

2、更改資料庫名,如果是ACCESS資料庫,那文件的擴展名最好不要用mdb,改成ASP的,文件名也可以多幾個特殊符號。

3、接著檢查一下網站有沒有注入漏洞或跨站漏洞,如果有的話就相當打上防注入或防跨站補丁。

4、檢查一下網站的上傳文件,常見了有欺騙上傳漏洞,就對相應的代碼進行過濾。

5、儘可能不要暴露網站的後台地址,以免被社會工程學猜解出管理用戶和密碼。

6、寫入一些防掛馬代碼,讓框架代碼等掛馬無效。

7、禁用FSO許可權也是一種比較絕的方法。

8、修改網站部分文件夾的讀寫許可權。

9、如果你是自己的伺服器,那就不僅要對你的網站程序做一下安全了,而且要對你的伺服器做一下安全也是很有必要了!

1、在不想被複制內容的php頁面中添加引用script src=”../nocopy.js” type=”text/javascript”/script

2、同時在網站文件夾中放入nocopy.js文件,當前../nocopy.js表示nocopy.js文件在根文件夾中

3、nocopy.js中的文件內容是:

var omitformtags=[“input”, “textarea”, “select”]

omitformtags=omitformtags.join(“|”)

function disableselect(e){

if (omitformtags.indexOf(e.target.tagName.toLowerCase())==-1)

return false

}

function reEnable(){

return true

}

if (typeof document.onselectstart!=”undefined”)

document.onselectstart=new Function (“return false”)

else{

document.onmousedown=disableselect

document.onmouseup=reEnable

}

那你就需要盡量多考慮一點了

一個是參數,要防止sql注入,這個是必須的

一個是驗證碼,防止機器人刷爆你的伺服器

如果自己寫,不要寫太複雜,這樣漏洞相對比較少

我也是自己寫的,不過不建議啊,比較麻煩,花時間

而且還沒有開源的功能多

希望能幫助到你

一,HTML防注入。

一般的html注入都是在字元串中加入了html標籤,用下JAVA代碼可以去掉這部分代碼。

代碼如下,自己封裝成方法即可。

String msge = “asdasdasdasd div id=\”f\”asdfsdf”;

System.out.println(msge);

msge = msge.replace(“”, “”);

msge = msge.replace(“”, “”);

msge = msge.replace(” “, ” “);

msge = msge.replace(“”, “”);

msge = msge.replace(“\””, “””);

msge = msge.replace(“‘”, “qpos;”);

System.out.println(msge);

二、防SQL注入

最簡單最容易的是限制用戶輸入。

簡單點的就是不允許用戶輸入單引號 和 –,因為單引號號–在SQL中都是影響執行的。

但SQL注入是多方面的,防止的方法也有很多種。

1、地址欄禁止特殊字元防SQL注入

把特殊字元(如and、or、’、”)都禁止提交就可以防止注入了。

2、php過濾html字元串,防止SQL注入

批量過濾post,get敏感數據

$_GET = stripslashes_array($_GET);

$_POST = stripslashes_array($_POST);

數據過濾函數

function stripslashes_array($array) {

while(list($key,$var) = each($array)) {

if ($key != ‘argc’ $key != ‘argv’ (strtoupper($key) != $key || ”.intval($key) == “$key”)) {

if (is_string($var)) {

$array[$key] = stripslashes($var);

}

if (is_array($var)) {

$array[$key] = stripslashes_array($var);

}

}

}

return $array;

}

3、替換HTML尾標籤

function lib_replace_end_tag($str)

{

if (empty($str)) return false;

$str = htmlspecialchars($str);

$str = str_replace( ‘/’, “”, $str);

$str = str_replace(“\\”, “”, $str);

$str = str_replace(“”, “”, $str);

$str = str_replace(“”, “”, $str);

$str = str_replace(“SCRIPT”, “”, $str);

$str = str_replace(“/SCRIPT”, “”, $str);

$str = str_replace(“script”, “”, $str);

$str = str_replace(“/script”, “”, $str);

$str=str_replace(“select”,”select”,$str);

$str=str_replace(“join”,”join”,$str);

$str=str_replace(“union”,”union”,$str);

$str=str_replace(“where”,”where”,$str);

$str=str_replace(“insert”,”insert”,$str);

$str=str_replace(“delete”,”delete”,$str);

$str=str_replace(“update”,”update”,$str);

$str=str_replace(“like”,”like”,$str);

$str=str_replace(“drop”,”drop”,$str);

$str=str_replace(“create”,”create”,$str);

$str=str_replace(“modify”,”modify”,$str);

$str=str_replace(“rename”,”rename”,$str);

$str=str_replace(“alter”,”alter”,$str);

$str=str_replace(“cas”,”cast”,$str);

$str=str_replace(“”,””,$str);

$str=str_replace(“”,””,$str);

$str=str_replace(“”,””,$str);

$str=str_replace(” “,chr(32),$str);

$str=str_replace(” “,chr(9),$str);

$str=str_replace(” “,chr(9),$str);

$str=str_replace(“”,chr(34),$str);

$str=str_replace(“‘”,chr(39),$str);

$str=str_replace(“br /”,chr(13),$str);

$str=str_replace(“””,”‘”,$str);

$str=str_replace(“css”,”‘”,$str);

$str=str_replace(“CSS”,”‘”,$str);

return $str;

}

三、專業的事情交給專業的工具去做。

安裝安全軟體。例如,在伺服器中安裝「伺服器安全狗」,可以設置防注入,防攻擊的設置,只要設置好安全規則,就可以屏蔽大多數攻擊入侵。

網站的運行安全肯定是每個站長必須考慮的問題,大家知道,大多數黑客攻擊網站都是採用sql注入,這就是我們常說的為什麼最原始的靜態的網站反而是最安全的。 今天我們講講PHP注入的安全規範,防止自己的網站被sql注入。

如今主流的網站開發語言還是php,那我們就從php網站如何防止sql注入開始說起:

Php注入的安全防範通過上面的過程,我們可以了解到php注入的原理和手法,當然我們也同樣可以制定出相應該的防範方法:

首先是對伺服器的安全設置,這裡主要是php+mysql的安全設置和linux主機的安全設置。對php+mysql注射的防範,首先將magic_quotes_gpc設置為On,display_errors設置為Off,如果id型,我們利用intval()將其轉換成整數類型,如代碼:

$id=intval($id);

mysql_query=」select *from example where articieid=』$id』」;或者這樣寫:mysql_query(」SELECT * FROM article WHERE articleid=」.intval($id).」”)

如果是字元型就用addslashes()過濾一下,然後再過濾」%」和」_」如:

$search=addslashes($search);

$search=str_replace(「_」,」\_」,$search);

$search=str_replace(「%」,」\%」,$search);

當然也可以加php通用防注入代碼:

/*************************

PHP通用防注入安全代碼

說明:

判斷傳遞的變數中是否含有非法字元

如$_POST、$_GET

功能:

防注入

**************************/

//要過濾的非法字元

$ArrFiltrate=array(」『」,」;」,」union」);

//出錯後要跳轉的url,不填則默認前一頁

$StrGoUrl=」”;

//是否存在數組中的值

function FunStringExist($StrFiltrate,$ArrFiltrate){

foreach ($ArrFiltrate as $key=$value){

if (eregi($value,$StrFiltrate)){

return true;

}

}

return false;

}

//合併$_POST 和 $_GET

if(function_exists(array_merge)){

$ArrPostAndGet=array_merge($HTTP_POST_VARS,$HTTP_GET_VARS);

}else{

foreach($HTTP_POST_VARS as $key=$value){

$ArrPostAndGet[]=$value;

}

foreach($HTTP_GET_VARS as $key=$value){

$ArrPostAndGet[]=$value;

}

}

//驗證開始

foreach($ArrPostAndGet as $key=$value){

if (FunStringExist($value,$ArrFiltrate)){

echo 「alert(/」Neeao提示,非法字元/」);」;

if (empty($StrGoUrl)){

echo 「history.go(-1);」;

}else{

echo 「window.location=/」”.$StrGoUrl.」/」;」;

}

exit;

}

}

?

/*************************

保存為checkpostandget.php

然後在每個php文件前加include(「checkpostandget.php「);即可

**************************/

另外將管理員用戶名和密碼都採取md5加密,這樣就能有效地防止了php的注入。

還有伺服器和mysql也要加強一些安全防範。

對於linux伺服器的安全設置:

加密口令,使用「/usr/sbin/authconfig」工具打開密碼的shadow功能,對password進行加密。

禁止訪問重要文件,進入linux命令界面,在提示符下輸入:

#chmod 600 /etc/inetd.conf //改變文件屬性為600

#chattr +I /etc/inetd.conf //保證文件屬主為root

#chattr –I /etc/inetd.conf // 對該文件的改變做限制

禁止任何用戶通過su命令改變為root用戶

在su配置文件即/etc/pam.d/目錄下的開頭添加下面兩行:

Auth sufficient /lib/security/pam_rootok.so debug

Auth required /lib/security/pam_whell.so group=wheel

刪除所有的特殊帳戶

#userdel lp等等 刪除用戶

#groupdel lp等等 刪除組

禁止不使用的suid/sgid程序

#find / -type f \(-perm -04000 – o –perm -02000 \) \-execls –lg {} \;

原創文章,作者:FCOXL,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/126583.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
FCOXL的頭像FCOXL
上一篇 2024-10-03 23:08
下一篇 2024-10-03 23:08

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • Python爬蟲可以爬哪些網站

    Python是被廣泛運用於數據處理和分析領域的編程語言之一。它具有易用性、靈活性和成本效益高等特點,因此越來越多的人開始使用它進行網站爬取。本文將從多個方面詳細闡述,Python爬…

    編程 2025-04-29
  • 網站為什麼會被黑客攻擊?

    黑客攻擊是指利用計算機技術手段,入侵或者破壞計算機信息系統的一種行為。網站被黑客攻擊是常見的安全隱患之一,那麼,為什麼網站會被黑客攻擊呢?本文將從不同角度分析這個問題,並且提出相應…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • 如何用Python訪問網站

    本文將從以下幾個方面介紹如何使用Python訪問網站:網路請求、POST請求、用戶代理、Cookie、代理IP、API請求。 一、網路請求 Python有三種主流的網路請求庫:ur…

    編程 2025-04-29
  • 如何將Python開發的網站變成APP

    要將Python開發的網站變成APP,可以通過Python的Web框架或者APP框架,將網站封裝為APP的形式。常見的方法有: 一、使用Python的Web框架Django Dja…

    編程 2025-04-28
  • 如何在伺服器上運行網站

    想要在伺服器上運行網站,需要按照以下步驟進行配置和部署。 一、選擇伺服器和域名 想要在伺服器上運行網站,首先需要選擇一台雲伺服器或者自己搭建的伺服器。雲伺服器會提供更好的穩定性和可…

    編程 2025-04-28
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • Python網站源碼解析

    本文將從多個方面對Python網站源碼進行詳細解析,包括搭建網站、數據處理、安全性等內容。 一、搭建網站 Python是一種高級編程語言,適用於多種領域。它也可以用於搭建網站。最常…

    編程 2025-04-28
  • 如何防止Python培訓騙局

    Python這門語言被譽為是一門容易學習但卻功能強大的編程語言,受到了越來越多人的追捧和關注。但是,Python市場上還是存在一些不良的培訓機構和騙局,下面從多個方面探討如何防止P…

    編程 2025-04-28

發表回復

登錄後才能評論