php防跨站之open,php跨站腳本攻擊

本文目錄一覽:

如何防止跨站攻擊~~~

除了自身的硬件條件外,還需要對你的服務器做出安全設置控制,用2003系統來說下具體安全設置如下:

1、服務器安全設置之–硬盤權限篇

這裡着重談需要的權限,也就是最終文件夾或硬盤需要的權限,可以防禦各種木馬入侵,提權攻擊,跨站攻擊等。本實例經過多次試驗,安全性能很好,服務器基本沒有被木馬威脅的擔憂了。

硬盤或文件夾: C:\ D:\ E:\ F:\ 類推

主要權限部分:

Administrators 完全控制 無

該文件夾,子文件夾及文件

不是繼承的

CREATOR OWNER 完全控制

只有子文件夾及文件

不是繼承的

SYSTEM 完全控制

該文件夾,子文件夾及文件

不是繼承的

其他權限部分:

如果安裝了其他運行環境,比如PHP等,則根據PHP的環境功能要求來設置硬盤權限,一般是安裝目錄加上users讀取運行權限就足夠了,比如c:\php的話,就在根目錄權限繼承的情況下加上users讀取運行權限,需要寫入數據的比如tmp文件夾,則把users的寫刪權限加上,運行權限不要,然後把虛擬主機用戶的讀權限拒絕即可。如果是mysql的話,用一個獨立用戶運行MYSQL會更安全,下面會有介紹。如果是winwebmail,則最好建立獨立的應用程序池和獨立IIS用戶,然後整個安裝目錄有users用戶的讀/運行/寫/權限,IIS用戶則相同,這個IIS用戶就只用在winwebmail的WEB訪問中,其他IIS站點切勿使用

硬盤設置需要根據你的實際需要來設置權限!

2、服務器安全設置之–系統服務篇(設置完畢需要重新啟動)

*除非特殊情況非開不可,下列系統服務要停止並禁用:

1、Alerter 2、Application Layer Gateway Service 3、

Background Intelligent Transfer Service

4、Computer Browser 5、Distributed File System 6、Help and Support 7、Messenger 8、NetMeeting Remote Desktop Sharing 9、Print Spooler 10、Remote Registry 11、Task Scheduler 12、TCP/IP NetBIOS Helper 13、Telnet 14、Workstation 以上是windows2003server標準服務當中需要停止的服務,作為IIS網絡服務器,以上服務務必要停止,如果需要SSL證書服務,則設置方法不同。如果你裝有虛擬主機系統,設置當然也不一樣!更詳細設置可以根據自己的需要找更詳細的參考資料。

3、服務器安全設置之–組件安全設置篇 (非常重要!!!)

A、卸載WScript.Shell 和 Shell.application 組件,將下面的代碼保存為一個.BAT文件執行(分2000和2003系統)

win2000

regsvr32/u C:\WINNT\System32\wshom.ocx

del C:\WINNT\System32\wshom.ocx

regsvr32/u C:\WINNT\system32\shell32.dll

del C:\WINNT\system32\shell32.dll

win2003

regsvr32/u C:\WINDOWS\System32\wshom.ocx

del C:\WINDOWS\System32\wshom.ocx

regsvr32/u C:\WINDOWS\system32\shell32.dll

del C:\WINDOWS\system32\shell32.dll

B、改名不安全組件,需要注意的是組件的名稱和Clsid都要改,並且要改徹底了,不要照抄,要自己改

【開始→運行→regedit→回車】打開註冊表編輯器

然後【編輯→查找→填寫Shell.application→查找下一個】

用這個方法能找到兩個註冊表項:

{13709620-C279-11CE-A49E-444553540000} 和 Shell.application 。

第一步:為了確保萬無一失,把這兩個註冊表項導出來,保存為xxxx.reg 文件。

第二步:比如我們想做這樣的更改

13709620-C279-11CE-A49E-444553540000 改名為 13709620-C279-11CE-A49E-444553540001

Shell.application 改名為 Shell.application_nohack

第三步:那麼,就把剛才導出的.reg文件里的內容按上面的對應關係替換掉,然後把修改好的.reg文件導入到註冊表中(雙擊即可),導入了改名後的註冊表項之後,別忘記了刪除原有的那兩個項目。這裡需要注意一點,Clsid中只能是十個數字和ABCDEF六個字母。

其實,只要把對應註冊表項導出來備份,然後直接改鍵名就可以了。

WScript.Shell 和 Shell.application 組件是 腳本入侵過程中,提升權限的重要環節,這兩個組件的卸載和修改對應註冊鍵名,可以很大程度的提高虛擬主機的腳本安全性能,一般來說,ASP和php類腳本提升權限的功能是無法實現了,再加上一些系統服務、硬盤訪問權限、端口過濾、本地安全策略的設置,虛擬主機因該說,安全性能有非常大的提高,黑客入侵的可能性是非常低了。註銷了Shell組件之後,侵入者運行提升工具的可能性就很小了,但是prel等別的腳本語言也有shell能力,為防萬一,還是設置一下為好。下面是另外一種設置,大同小異。

一、禁止使用FileSystemObject組件

FileSystemObject可以對文件進行常規操作,可以通過修改註冊表,將此組件改名,來防止此類木馬的危害。

HKEY_CLASSES_ROOT\Scripting.FileSystemObject\

改名為其它的名字,如:改為 FileSystemObject_ChangeName

自己以後調用的時候使用這個就可以正常調用此組件了

也要將clsid值也改一下

HKEY_CLASSES_ROOT\Scripting.FileSystemObject\CLSID\項目的值

也可以將其刪除,來防止此類木馬的危害。

2000註銷此組件命令:RegSrv32 /u C:\WINNT\SYSTEM\scrrun.dll

2003註銷此組件命令:RegSrv32 /u C:\WINDOWS\SYSTEM\scrrun.dll

如何禁止Guest用戶使用scrrun.dll來防止調用此組件?

使用這個命令:cacls C:\WINNT\system32\scrrun.dll /e /d guests

二、禁止使用WScript.Shell組件

WScript.Shell可以調用系統內核運行DOS基本命令

可以通過修改註冊表,將此組件改名,來防止此類木馬的危害。

HKEY_CLASSES_ROOT\WScript.Shell\及HKEY_CLASSES_ROOT\WScript.Shell.1\

改名為其它的名字,如:改為WScript.Shell_ChangeName 或 WScript.Shell.1_ChangeName

自己以後調用的時候使用這個就可以正常調用此組件了

也要將clsid值也改一下

HKEY_CLASSES_ROOT\WScript.Shell\CLSID\項目的值

HKEY_CLASSES_ROOT\WScript.Shell.1\CLSID\項目的值

也可以將其刪除,來防止此類木馬的危害。

三、禁止使用Shell.Application組件

Shell.Application可以調用系統內核運行DOS基本命令

可以通過修改註冊表,將此組件改名,來防止此類木馬的危害。

HKEY_CLASSES_ROOT\Shell.Application\

HKEY_CLASSES_ROOT\Shell.Application.1\

改名為其它的名字,如:改為Shell.Application_ChangeName 或 Shell.Application.1_ChangeName

自己以後調用的時候使用這個就可以正常調用此組件了

也要將clsid值也改一下

HKEY_CLASSES_ROOT\Shell.Application\CLSID\項目的值

HKEY_CLASSES_ROOT\Shell.Application\CLSID\項目的值

也可以將其刪除,來防止此類木馬的危害。

禁止Guest用戶使用shell32.dll來防止調用此組件。

2000使用命令:cacls C:\WINNT\system32\shell32.dll /e /d guests

2003使用命令:cacls C:\WINDOWS\system32\shell32.dll /e /d guests

註:操作均需要重新啟動WEB服務後才會生效。

四、調用Cmd.exe

禁用Guests組用戶調用cmd.exe

2000使用命令:cacls C:\WINNT\system32\Cmd.exe /e /d guests

2003使用命令:cacls C:\WINDOWS\system32\Cmd.exe /e /d guests

通過以上四步的設置基本可以防範目前比較流行的幾種木馬,但最有效的辦法還是通過綜合安全設置,將服務器、程序安全都達到一定標準,才可能將安全等級設置較高,防範更多非法入侵。

C、防止Serv-U權限提升 (適用於 Serv-U6.0 以前版本,之後可以直接設置密碼)

先停掉Serv-U服務

用Ultraedit打開ServUDaemon.exe

查找 Ascii:LocalAdministrator 和 #l@$ak#.lk;0@P

修改成等長度的其它字符就可以了,ServUAdmin.exe也一樣處理。

另外注意設置Serv-U所在的文件夾的權限,不要讓IIS匿名用戶有讀取的權限,否則人家下走你修改過的文件,照樣可以分析出你的管理員名和密碼。

4、服務器安全設置之–IIS用戶設置方法

不同站點使用不用的IIS用戶。另外權限的設置要細緻。

5、服務器安全設置之–服務器安全和性能配置

把下面文本保存為: windows2000-2003服務器安全和性能註冊表自動配置文件.reg 運行即可。[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]

“NoRecentDocsMenu”=hex:01,00,00,00

“NoRecentDocsHistory”=hex:01,00,00,00

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon]

“DontDisplayLastUserName”=”1”

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]

“restrictanonymous”=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\Parameters]

“AutoShareServer”=dword:00000000

“AutoShareWks”=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]

“EnableICMPRedirect”=dword:00000000

“KeepAliveTime”=dword:000927c0

“SynAttackProtect”=dword:00000002

“TcpMaxHalfOpen”=dword:000001f4

“TcpMaxHalfOpenRetried”=dword:00000190

“TcpMaxConnectResponseRetransmissions”=dword:00000001

“TcpMaxDataRetransmissions”=dword:00000003

“TCPMaxPortsExhausted”=dword:00000005

“DisableIPSourceRouting”=dword:00000002

“TcpTimedWaitDelay”=dword:0000001e

“TcpNumConnections”=dword:00004e20

“EnablePMTUDiscovery”=dword:00000000

“NoNameReleaseOnDemand”=dword:00000001

“EnableDeadGWDetect”=dword:00000000

“PerformRouterDiscovery”=dword:00000000

“EnableICMPRedirects”=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters]

“BacklogIncrement”=dword:00000005

“MaxConnBackLog”=dword:000007d0

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AFD\Parameters]

“EnableDynamicBacklog”=dword:00000001

“MinimumDynamicBacklog”=dword:00000014

“MaximumDynamicBacklog”=dword:00007530

“DynamicBacklogGrowthDelta”=dword:0000000a

功能:可抵禦DDOS攻擊2-3萬包,提高服務器TCP-IP整體安全性能(效果等於軟件防火牆,節約了系統資源)

6、服務器安全設置之–IP安全策略 (僅僅列出需要屏蔽或阻止的端口或協議)

協議 IP協議端口 源地址 目標地址 描述 方式

ICMP — — — ICMP 阻止

UDP 135 任何IP地址 我的IP地址 135-UDP 阻止

UDP 136 任何IP地址 我的IP地址 136-UDP 阻止

UDP 137 任何IP地址 我的IP地址 137-UDP 阻止

UDP 138 任何IP地址 我的IP地址 138-UDP 阻止

UDP 139 任何IP地址 我的IP地址 139-UDP 阻止

TCP 445 任何IP地址-從任意端口 我的IP地址-445 445-TCP 阻止

UDP 445 任何IP地址-從任意端口 我的IP地址-445 445-UDP 阻止

UDP 69 任何IP地址-從任意端口 我的IP地址-69 69-入 阻止

UDP 69 我的IP地址-69 任何IP地址-任意端口 69-出 阻止

TCP 4444 任何IP地址-從任意端口 我的IP地址-4444 4444-TCP 阻止

TCP 1026 我的IP地址-1026 任何IP地址-任意端口 灰鴿子-1026 阻止

TCP 1027 我的IP地址-1027 任何IP地址-任意端口 灰鴿子-1027 阻止

TCP 1028 我的IP地址-1028 任何IP地址-任意端口 灰鴿子-1028 阻止

UDP 1026 我的IP地址-1026 任何IP地址-任意端口 灰鴿子-1026 阻止

UDP 1027 我的IP地址-1027 任何IP地址-任意端口 灰鴿子-1027 阻止

UDP 1028 我的IP地址-1028 任何IP地址-任意端口 灰鴿子-1028 阻止

TCP 21 我的IP地址-從任意端口 任何IP地址-到21端口 阻止tftp出站 阻止

TCP 99 我的IP地址-99 任何IP地址-任意端口 阻止99shell 阻止

以上是IP安全策略里的設置,可以根據實際情況,增加或刪除端口

7、服務器安全設置之–本地安全策略設置

安全策略自動更新命令:GPUpdate /force (應用組策略自動生效不需重新啟動)

開始菜單—管理工具—本地安全策略

A、本地策略——審核策略

審核策略更改 成功 失敗

審核登錄事件 成功 失敗

審核對象訪問 失敗

審核過程跟蹤 無審核

審核目錄服務訪問 失敗

審核特權使用 失敗

審核系統事件 成功 失敗

審核賬戶登錄事件 成功 失敗

審核賬戶管理 成功 失敗

B、本地策略——用戶權限分配

關閉系統:只有Administrators組、其它全部刪除。

通過終端服務拒絕登陸:加入Guests、User組

通過終端服務允許登陸:只加入Administrators組,其他全部刪除

C、本地策略——安全選項

交互式登陸:不顯示上次的用戶名 啟用

網絡訪問:不允許SAM帳戶和共享的匿名枚舉 啟用

網絡訪問:不允許為網絡身份驗證儲存憑證 啟用

網絡訪問:可匿名訪問的共享 全部刪除

網絡訪問:可匿名訪問的命 全部刪除

網絡訪問:可遠程訪問的註冊表路徑 全部刪除

網絡訪問:可遠程訪問的註冊表路徑和子路徑 全部刪除

帳戶:重命名來賓帳戶 重命名一個帳戶

帳戶:重命名系統管理員帳戶 重命名一個帳戶

還有很多設置!你可以多找找資料!

thinkphp怎麼防止跨站請求

TP當中有一個叫 “表單令牌” 的東西,再每個表單中插入 表單令牌, 可以令網站避免csrf請求。

php配置防跨站、防跨目錄安全

現在很多網站都是採用php建站,不少都是直接使用現在成熟的cms程序,這些php開發的cms系統本身安全性可能並不高,這時就需要我們在服務器做一些針對php程序配置防跨站、防跨目錄等一些設置,可以有效的防止服務器上所有的php網站被惡意篡改。

適用範圍及演示系統

適用範圍:php5.3及以上版本

演示系統:centos

防跨站、防跨目錄安全設置方法

第1步:登錄到linux系統終端。

第2步:找到並打開php配置文件。

第3步:在php.ini最底部添加以下代碼,並保存。大家可就按以下代碼改成自己網站的配置即可。

[HOST=]

open_basedir=/wwwroot/

[PATH=/wwwroot/]

open_basedir=/wwwroot/

註:就如上代碼添加完之後就是防跨站防跨目錄的安全配置了,但是有一些缺點,就是比如說我們運行一些php探針等一些程序可能就是無法正常運行了,如果想讓網站正常運行php探針的話需要在/tmp/後加上:/proc/

第4步:添加完代碼並保存php.ini,之後重啟php服務即可生效。

nginx現在有什麼方法防止跨站

Nginx防跨目錄與跨站配置方法

Nginx有一個缺陷,就是沒有像apache的php_value_basedir給我們限制php文件訪問目錄,PHP低版本下,fastcgi 模式

下open_base設置無效,PHP在PHP5.3.3以上已經增加了HOST配置,可以起到防跨站、跨目錄的問題

如果你是PHP 5.3.3以上的版本,可以修改/usr/local/php/etc/php.ini在末尾里加入:

[HOST=111cn.net]

代碼如下 複製代碼

open_basedir=/home/wwwroot/111cn.net/:/tmp/

[PATH=/home/wwwroot/111cn.net]

open_basedir=/home/wwwroot/111cn.net/:/tmp/

修改好了。

最後重啟下php-fpm:sudo /etc/init.d/php-fpm restart

OK,。這樣設置後。就能增強系統的安全性,PHP目前,折騰也只能在他所在的目錄下設置啦

如果你不是php5.3.3以上版本我們就只能如下操作了

1、解壓php源代碼不細說了。

2、執行編譯./configure — (自帶參數)

3、修改源代碼。此文件位於main/fopen_wrappers.c

代碼如下 複製代碼

/* {{{ php_check_open_basedir

*/

PHPAPI int php_check_open_basedir_ex(const char *path, int warn TSRMLS_DC)

{

/* Only check when open_basedir is available */

if (PG(open_basedir) *PG(open_basedir)) {

char *pathbuf;

char *ptr;

char *end;

char *env_doc_root;

if(PG(doc_root)){

env_doc_root = estrdup(PG(doc_root));

}

else{

env_doc_root = sapi_getenv(“DOCUMENT_ROOT”, sizeof(“DOCUMENT_ROOT”)-1 TSRMLS_CC);

}

if(env_doc_root){

int res_root = php_check_specific_open_basedir(env_doc_root, path TSRMLS_CC);

efree(env_doc_root);

if (res_root == 0) {

return 0;

}

if (res_root == -2) {

errno = EPERM;

return -1;

}

}

// 添加的內容結束

pathbuf = estrdup(PG(open_basedir));

ptr = pathbuf;

while (ptr *ptr) {

end = strchr(ptr, DEFAULT_DIR_SEPARATOR);

if (end != NULL) {

*end = ”;

end++;

}

if (php_check_specific_open_basedir(ptr, path TSRMLS_CC) == 0) {

efree(pathbuf);

return 0;

}

ptr = end;

}

if (warn) {

php_error_docref(NULL TSRMLS_CC, E_WARNING, “open_basedir restriction in effect. File(%s) is not

within the allowed path(s): (%s)”, path, PG(open_basedir));

}

efree(pathbuf);

errno = EPERM; /* we deny permission to open it */

return -1;

}

/* Nothing to check… */

return 0;

}

/* }}} */

然後執行

代碼如下 複製代碼

make ZEND_EXTRA_LIBS=’-liconv’ make install

cp php.ini-dist /usr/local/php/etc/php.ini最後修改php.ini中的open_basedir改為:open_basedir =

“/var/tmp/:/tmp/”

可道雲data目錄搬遷,PHP防誇站設置

1、Kodexplorer可道雲的用戶文件存儲路徑:

用戶賬戶數據、群組等存儲在 data/system/下;

用戶文件、群組文件,存儲在 data/User ;data/Group。每個用戶獨立一個文件夾,默認和用戶名一致。

這個都是自建json數據庫,文件夾目錄的方式保存的

2、在線更新的話,不需要備份,直接更新即可

3、離線更新,如果是更新包,也不需要備份;如果是完全的版本置換,需要先備份data文件夾。

希望能給你幫助,你可以去後盾人那自學,最近聽說他們在搞實訓班培訓的活動

thinkphp怎麼防止跨站攻擊

我記得,好似有一個叫“表單令牌” 的東東,可以查看具體的文檔:

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/232199.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-11 12:50
下一篇 2024-12-11 12:50

相關推薦

  • PHP和Python哪個好找工作?

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

    編程 2025-04-29
  • Python腳本控制其他軟件

    Python作為一種簡單易學、功能強大的腳本語言,具有廣泛的應用領域,在自動化測試、Web開發、數據挖掘等領域都得到了廣泛的應用。其中,Python腳本控制其他軟件也是Python…

    編程 2025-04-29
  • Shell腳本與Python腳本的區別

    本文將從多個方面對Shell腳本與Python腳本的區別做詳細的闡述。 一、語法差異 Shell腳本和Python腳本的語法存在明顯差異。 Shell腳本是一種基於字符命令行的語言…

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

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

    編程 2025-04-29
  • Python自動化運維腳本

    Python自動化運維腳本是使用Python編寫的代碼,可以幫助管理員自動化執行繁瑣、重複的操作任務。通過Python自動化運維腳本,管理員可以在更短的時間內完成工作,提高工作效率…

    編程 2025-04-28
  • 使用Python圖書館搶座腳本的完整步驟

    本文將從多個方面詳細介紹如何使用Python編寫圖書館的座位搶佔腳本,並幫助您快速了解如何自動搶佔圖書館的座位,並實現您的學習計劃。 一、開發環境搭建 首先,我們需要安裝Pytho…

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

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

    編程 2025-04-28
  • ArcGIS的Python腳本需要主函數嗎?

    是的,ArcGIS的Python腳本需要主函數,主函數是Python腳本的入口和起點,沒有主函數腳本無法運行。 一、主函數的作用 在Python腳本中,主函數是代碼的入口,所有的代…

    編程 2025-04-28
  • Open h264 slic使用指南

    本文將從多個方面對Open h264 slic進行詳細闡述,包括使用方法、優缺點、常見問題等。Open h264 slic是一款基於H264視頻編碼標準的開源視頻編碼器,提供了快速…

    編程 2025-04-28
  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若服務器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27

發表回復

登錄後才能評論