導航:首頁 > 編程語言 > php防ftp

php防ftp

發布時間:2023-10-21 17:33:22

⑴ 通過php連接ftp需要怎麼樣的配置的,我直接連接怎麼鏈接不上呢

你這段代碼代碼我測試過了,沒有問題,可以正常連接到FTP伺服器。
從以下兩個方面來考慮吧:
① 你的PHP伺服器是否支持FTP功能,通過phpinfo()函數查看,一定要是FTP support:enabled。若不是,找下資料,開啟PHP支持FTP功能。
② 你的FTP伺服器是否正常運行,先通過FTP客戶端登陸一下,若不能登錄,則要先解決FTP登錄的問題。

⑵ ftp怎麼設置許可權可以讓php無法讀取其他目錄的文

設置php的執行用戶許可權為只限制讀寫網站根目錄下的文件及文件夾,比如www文件夾是網站根目錄,php-fpm用戶是執行用戶,那麼設置php-fpm只能讀寫www文件夾裡面的文件。這樣其他的www以外的目錄這個用戶就沒有許可權訪問了。

⑶ 用PHP實現Ftp用戶的在線管理


領導要我策劃一個網頁設計大賽和Flash創作大賽,要求必須實現在線報名和上傳作品。通過FreeBSD+Apache+PHP+Mysql+FTP我實現了該要求。
實現在線報名和上傳作品的思路是利用網頁表單收集用戶填寫的資料存儲到Mysql資料庫內,同時以該用戶的注冊名創建一個FTP上傳賬號並創建該用戶的相應目錄。
Ftp伺服器是系統默認帶的,採用系統用戶的用戶名和密碼,創建系統用戶就等於創建FTP用戶,FreeBSD是屬於UNIX陣營的操作系統,它沒有象Linux一樣的useradd和groupadd等創建用戶和組的命令,其取而代之的是pw命令加上相應參數來實現,在Freebsd上以管理員的身份創建一個用戶的命令是
以下是引用片段:
echo | pw useradd [-g][groupname] [-s][shelldir][-h 0]
參數g指定用戶組,參數s指定用戶的shell。
如果是普通用戶登陸頌凱慧的話還必須用到su命令,調用的方法是
以下是引用片段:
su root _c 『echo | pw useradd [-g][groupname] [-s][shelldir][-h 0] 』
執行之後系統會要求輸入管理員密碼,輸入密碼就可以以管理員的身份野答執行這個命令了。
實現這步操作的主要難點在於如何通過PHP來調用上面這些系統命孫答令去創建一個用戶,本例是使用PHP中的popen()函數來實現的,該函數執行指令打開文件,語法是int popen(string command, string mode),其打開的文件只能是單向的,只能讀或只能寫,對應的「string mode」為』r』或』w』,「string command」 就是命令字元串,在對文件的操作上可使用 fgets()、fgetss()與fputs()函數,本例用fputs()函數往文件裡面輸入管理員密碼。若是開檔發生錯誤將返回 false 值,最後函數要記得調用pclose()關閉。
下面我們來規劃一下FTP用戶的組,事先我們先用pw groupadd ftpuser創建ftpuse組,讓在線申請的用戶為這個組的成員。為了安全起見,我們不應該給FTP用戶Telnet許可權,所以我們還要專門給他們創建一個shell,使得他們不能通過Telnet正常登陸系統,方法如下:先創建一個文件/bin/ftponly
以下是引用片段:
#!/bin/csh
/bin/cat
XX
You can ony use this username to login ftp server!
And you can not use it to telnet to this system! XX
sleep 10
該文件中XX之間就是顯示給用telnet登陸的用戶看的信息。信息顯示10秒鍾就自動退出了。最後不要忘記用chmod +x /bin/ftponly給這個文件可執行屬性。
然後在/bin/shell文件中添加「/bin/ftponly」,在以後的命令裡面我們就可以利用pw中-s參數把這個shell指定給FTP用戶了。
最後還要注意一個問題,su命令僅僅是wheel管理組的用戶成員才可以使用,當PHP調用su命令的時候也必須以wheel組成員的身份運行,否則系統拒絕運行,而PHP運行系統命令的身份就是Apache Web伺服器運行的身份,初始的用戶名和用戶組都是nobody,所以先得建立一個wheel組的用戶www供apache使用,接著更改Apache的配置文件httpd.conf中的user為www,group為wheel,重新啟動Apache,就可以以新用戶身份運行了。
下面可以創建PHP源文件checkin.php了,代碼如下:
以下是引用片段:
?if (($username!="") and ($userpasswd!=""))//判斷是否有表單提交了信息
{ $rootpasswd="adminpassword"; //定義管理員密碼
$creatuser ="su --login root -c 'echo ".$userpasswd." | pw useradd ".$username." -s /bin/ftponly -g ftpuser _s /bin/ftponly -h 0' "; //這是利用su和pw命令創建用戶的用到的字元串
$fp=popen($creatuser,"w"); //調用popen()函數執行字元串中的命令,返迴文句柄給$fp
fputs($fp,$rootpasswd); //寫入管理員密碼到文件$fp,相當於輸入密碼給系統
pclose($fp);//關閉文件
$creatdir="su --login root -c 'mkdir /home/".$username."'";//創建用戶目錄的命令字元串
$fp=popen($creatdir,"w");//執行命令創建用戶目錄
fputs($fp,$rootpasswd); //輸入管理員密碼
pclose($fp);
$creatdir="su --login root -c 'mkdir /home/".$username."/public_html'";
$fp=popen($creatdir,"w"); //執行命令創建用戶網站根目錄
fputs($fp,$rootpasswd); //輸入管理員密碼
pclose($fp);
$creatdir="su --login root -c 'chown ".$username." /home/".$username."'"; //改變用戶目錄的所有者為用戶自己,初始為運行Apache的用戶www。
$fp=popen($creatdir,"w"); //執行命令
fputs($fp,$rootpasswd); //輸入管理員密碼
pclose($fp);
$creatdir="su --login root -c 'chown ".$username." /home/".$username."/public_html'"; //改變網站根目錄的歸屬
$fp=popen($creatdir,"w");
fputs($fp,$rootpasswd);
pclose($fp);
echo "恭喜".$username.",您的的FTP賬號已經申請成功!請到FTP上登陸,請注意,您沒有Telnet許可權";}
else{?
html
head
title申請FTP賬號/title
meta http-equiv="Content-Type" content="text/html; charset=gb2312"
/head
body bgcolor="#FFFFFF"
div align="center"
p申請FTP賬號/p
form method=POST action="? echo $PHP_SELF; ?"
table width="36%" border="0"
tr
td width="40%"
div align="right"賬號名稱:/div
/td
td width="60%"
input type="text" name="username"
/td
/tr
tr
td width="40%"
div align="right"密碼:/div
/td
td width="60%"
input type="password" name="userpasswd"
/td
/tr
tr
td colspan="2"input type="submit" name="Submit" value="申請"/td
/tr
/table
/form
/div?}?
/body
/html

⑷ 自己寫的php代碼連接不上遠程ftp伺服器,但可以連接本地ftp伺服器(127.0.0.1)

$hostname="127.0.0.1";
127.0.0.1是localhost的ip
你用localhost當然連不上你的服喚悔喚務和凱器前信

⑸ PHP網站部署前怎麼檢測防止網站被掛馬

瀏覽器、安全軟體一般都是採用黑名單機制,他們的黑名單應該是來源於用戶舉報吧,至於其它的來源的就不太清楚。所以收集這個只能是手工收集了。
而檢測被掛馬也一般也只能通過軟體或者手工去檢測,好像還沒辦法通過程序自身自檢。所以在網站部署前需要注意防止被掛馬的防預,這是網上提供的一些方法,我整理一下,供你參考:
1、建議用戶通過ftp來上傳、維護網頁
2、對上傳程序的調用一定要進行身份認證,並只允許信任的人使用上傳程序。這其中包括各種新聞發布、商城及論壇程
序,只要可以上傳文件的都要進行身份認證!
3、管理員的用戶名和密碼要有一定復雜性,不能過於簡單,還要注意定期更換。
4、到正規網站下載程序,下載後要對其資料庫名稱和存放路徑進行修改,資料庫文件名稱也要有一定復雜性。
5、要盡量保持程序是最新版本。
6、不要在網頁上加註後台管理程序登陸頁面的鏈接。
7、為防止程序有未知漏洞,可以在維護後刪除後台管理程序的登陸頁面,下次維護時再通過ftp上傳即可。
8、要時常備份資料庫等重要文件。
9、日常要多維護,並注意空間中是否有來歷不明的文件。
10、一旦發現被入侵,除非自己能識別出所有木馬文件,否則要刪除所有文件。
11、定期對網站進行安全的檢測,具體可以利用網上一些工具,如安大互聯安全檢測平台。

⑹ 用PHP控制FTP文件上傳

利用PHP,你總是可以有多種方式來完成某個特定的任務。我們就拿文件上傳舉個例子。當然了,你可以按照傳統的方式來使用HTTP文件上傳,把文件直接傳輸到Web伺服器磁碟上。沙河電腦培訓認為你還可以用更加奇異的方式上傳,用FTP協議兩步就完成上傳:從你的本地硬碟到Web伺服器,然後再到FTP伺服器。



PHP在本機同時支持FTP和HTTP上傳,所以你可以根據自己應用程序的設計需要進行最佳的選擇。使用PHP的FTP函數進行文件傳輸幾乎與使用傳統的FTP客戶端相同——你會看到連函數的名字都和標準的FTP命令類似。


關於HTTP文件上傳的文章已經多得滿天飛了,這就是為什麼本文有必要把注意賣灶爛力放在基於FTP的文件辯首上傳上了(但是在後面給出的例子中,兩種方式你都會看到)。要注意的是,本教程假設你已經安裝好了PHP/Apache,而且HTTP文件上傳和FTP的函數都已經激活了。


第一步:確信你擁有連接/上傳到FTP伺服器的許可權


PHP的FTP函數需要客戶端-伺服器連接,所以你需要在進行文件上傳之前登錄到目標伺服器上。你的第一項任務是確信你已經擁有了完成這項任務的信中漏任書。這一步可能看起來是理所當然的,但是你會驚奇地發現有多少開發人員忘了這么做,結果後來浪費大量的時間來解決因此而出現的問題。


閱讀全文

與php防ftp相關的資料

熱點內容
newfile命令快捷鍵 瀏覽:567
阿里雲物理伺服器 瀏覽:953
靈狐視頻app哪個好 瀏覽:257
大廠退役程序員自述 瀏覽:252
linux命令watch 瀏覽:889
加密幣哪些平台不撤出中國 瀏覽:553
max加線命令 瀏覽:424
app胖瘦模式哪個好用 瀏覽:724
可以下載源碼的軟體 瀏覽:487
程序員寫一天代碼累嗎 瀏覽:628
ie文件夾禁止訪問 瀏覽:544
百川互聯網程序員 瀏覽:784
linuxpython解釋器 瀏覽:669
興安得力軟體加密狗 瀏覽:494
智能網路攝像頭加密 瀏覽:574
軟體畢業程序員培訓 瀏覽:654
安卓陀螺儀低怎麼辦 瀏覽:248
一級建造師復習題集pdf 瀏覽:904
法理學pdf海默 瀏覽:394
伺服器內存儲器是用什麼的 瀏覽:821