Perl看起來很簡單,很小。如果我不知道Perl語言,我該如何檢查Perl代碼是否安全?
一位朋友希望我運行一個簡單的perl代碼,我不明白perl腳本是否會做比應該做的更多的事情。
Perl腳本能像後門一樣工作嗎?可能是,然後......
非程序員如果看不到perl腳本沒有捕獲顯示信息,記錄擊鍵和其他東西,該怎麼看?
謝謝
Perl看起來很簡單,很小。如果我不知道Perl語言,我該如何檢查Perl代碼是否安全?
一位朋友希望我運行一個簡單的perl代碼,我不明白perl腳本是否會做比應該做的更多的事情。
Perl腳本能像後門一樣工作嗎?可能是,然後......
非程序員如果看不到perl腳本沒有捕獲顯示信息,記錄擊鍵和其他東西,該怎麼看?
謝謝
如果你不明白的腳本,那麼你有沒有比你跑了純二進制可執行更多的保障。這就是說:你沒有任何保證。
顯然,不運行程序作爲根(:
如果你真的需要運行腳本,你不信任你的朋友,你可以嘗試運行它一個「沙箱」內,如一個虛擬的OS,一個chroot「ED環境或jail。 這裏是沿着這些線路one more link。
謝謝,我會做。雖然這很好,但我想唯一的方法是我需要學習如何編程,而且沒有快速的方法來做到這一點。 :( – lkl
既然你懷疑的腳本是惡意你應該不運行它。如果可能的話,因爲已經表明,粘貼你的代碼,以便我們可以看看。
我不能粘貼代碼,他可能會在谷歌上搜索它,他會注意到我不信任它。 – lkl
如果你的朋友得知你重視你的安全,爲什麼它不好呢?直接和你的朋友說,你告訴她不信任她的代碼,因爲您重視您的安全,您不會運行未經驗證的代碼。 –
真的不可能知道腳本是否是惡意的(即使圖片文件可能包含惡意代碼!),但是如果您想運行它,請嘗試在虛擬機,沙箱或甚至在只要告訴作者你是否可以破解它,所以他可以修復它,或者說那是什麼author says)。
你爲什麼不讓他解釋它是如何工作的,一行一行?如果他真的是你的朋友,我無法想象他爲什麼希望你運行惡意代碼。
這是人性的,很難知道一個人是否真的是朋友 – lkl
如果你不知道一個人足夠好,可以稱他們爲朋友,你不相信他們,那麼不要運行它 –
除了一些值得注意的例外,我們可以製作一份清單,以減輕一些恐懼。
use Some::Module
)大部分模塊,將存在於CPAN,Perl模塊的公共倉庫。雖然這將是一個開放式搜索,但這會幫助您查看是否正在使用記錄器或網絡連接(use strict; use warnings;
無問題)。open
命令,因爲這些命令可以讀取/寫入文件或進行其他系統連接。system
命令,甚至反引號「`」,因爲Perl使用它們來在您的計算機上運行程序。tie
命令可讓這些操作隱藏在變量中,use overload
雜注可讓它們隱藏在函數或操作符中。 (其中很多需要在package
環境中完成(因爲沒有更好的詞),所以請記下這些)。最後,eval
和/e
或/e
或/ee
正則表達式標誌用於評估(讀取:執行)以某種其他形式存在的代碼,可能存儲在變量中,或者實時創建,隱藏代碼可能通過此機制「生效」。*something = \*STDOUT
,則可以繼續。請注意,這與簡單乘法運算符的符號相同。再一次有很多更多的方式在Perl中進行惡意的事情,而上述所有的事情都不自然,甚至不常見,也許這會給你一個開始的地方。
是否有一些代碼可以訪問,如果打開文件安全可以粘貼代碼? –
我無法粘貼代碼,因爲谷歌可能會存儲它,然後我的朋友會注意到我不相信他的代碼。 :) – lkl
如果你不信任它,不明白它,不要運行它。我不明白爲什麼你不能在這裏發佈代碼,你的解釋不是很有說服力,所有這些對我來說似乎都有些幼稚。對不起..但你覺得我們可以幫你嗎? –