日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python 清空文件夹_Python初学者请注意!别这样直接运行python命令,否则电脑等于“裸奔”...

發(fā)布時(shí)間:2023/12/31 python 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 清空文件夹_Python初学者请注意!别这样直接运行python命令,否则电脑等于“裸奔”... 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Python已經(jīng)成為全球最受歡迎的編程語(yǔ)言之一。原因當(dāng)然是Python簡(jiǎn)明易用的腳本語(yǔ)法,只需把一段程序放入.py文件中,就能快速運(yùn)行。

而且Python語(yǔ)言很容易上手模塊。比如你編寫了一個(gè)模塊my_lib.py,只需在調(diào)用這個(gè)模塊的程序中加入一行import my_lib即可。

這樣設(shè)計(jì)的好處是,初學(xué)者能夠非常方便地執(zhí)行命令。但是對(duì)攻擊者來說,這等于是為惡意程序大開后門。

尤其是一些初學(xué)者將網(wǎng)上的Python軟件包、代碼下載的到本地~/Downloads文件夾后,就直接在此路徑下運(yùn)行python命令,這樣做會(huì)給電腦帶來極大的隱患。

別再圖方便了

為何這樣做會(huì)有危險(xiǎn)?首先,我們要了解Python程序安全運(yùn)行需要滿足的三個(gè)條件:

  • 系統(tǒng)路徑上的每個(gè)條目都處于安全的位置;
  • “主腳本”所在的目錄始終位于系統(tǒng)路徑中;
  • 若python命令使用-c和-m選項(xiàng),調(diào)用程序的目錄也必須是安全的。
  • 如果你運(yùn)行的是正確安裝的Python,那么Python安裝目錄和virtualenv之外唯一會(huì)自動(dòng)添加到系統(tǒng)路徑的位置,就是當(dāng)前主程序的安裝目錄。

    這就是安全隱患的來源,下面用一個(gè)實(shí)例告訴你為什么。

    如果你把pip安裝在/usr/bin文件夾下,并運(yùn)行pip命令。由于/usr/bin是系統(tǒng)路徑,因此這是一個(gè)非常安全的地方。

    但是,有些人并不喜歡直接使用pip,而是更喜歡調(diào)用/path/to/python -m pip。

    這樣做的好處是可以避免環(huán)境變量$PATH設(shè)置的復(fù)雜性,而且對(duì)于Windows用戶來說,也可以避免處理安裝各種exe腳本和文檔。

    所以問題就來了,如果你的下載文件中有一個(gè)叫做pip.py的文件,那么你將它將取代系統(tǒng)自帶的pip,接管你的程序。

    下載文件夾并不安全

    比如你不是從PyPI,而是直接從網(wǎng)上直接下載了一個(gè)Python wheel文件。你很自然地輸入以下命令來安裝它:

    ~$ cd Downloads ~/Downloads$ python -m pip install ./totally-legit-package.whl

    這似乎是一件很合理的事情。但你不知道的是,這么操作很有可能訪問帶有XSS JavaScript的站點(diǎn),并將帶有惡意軟件的的pip.py到下載文件夾中。

    下面是一個(gè)惡意攻擊軟件的演示實(shí)例:

    ~$ mkdir attacker_dir ~$ cd attacker_dir ~/attacker_dir$ echo 'print("lol ur pwnt")' > pip.py ~/attacker_dir$ python -m pip install requests lol ur pwnt

    看到了嗎?這段代碼生成了一個(gè)pip.py,并且代替系統(tǒng)的pip接管了程序。

    設(shè)置$PYTHONPATH也不安全

    前面已經(jīng)說過,Python只會(huì)調(diào)用系統(tǒng)路徑、virtualenv虛擬環(huán)境路徑以及當(dāng)前主程序路徑

    你也許會(huì)說,那我手動(dòng)設(shè)置一下 $PYTHONPATH 環(huán)境變量,不把當(dāng)前目錄放在環(huán)境變量里,這樣不就安全了嗎?

    非也!不幸的是,你可能會(huì)遭遇另一種攻擊方式。下面讓我們模擬一個(gè)“脆弱的”Python程序:

    # tool.py try:import optional_extra except ImportError:print("extra not found, that's fine")

    然后創(chuàng)建2個(gè)目錄:install_dir和attacker_dir。將上面的程序放在install_dir中。然后cd attacker_dir將復(fù)雜的惡意軟件放在這里,并把它的名字改成tool.py調(diào)用的optional_extra模塊:

    # optional_extra.py print("lol ur pwnt")

    我們運(yùn)行一下它:

    ~/attacker_dir$ python ../install_dir/tool.py extra not found, that's fine

    到這里還很好,沒有出現(xiàn)任何問題。

    但是這個(gè)習(xí)慣用法有一個(gè)嚴(yán)重的缺陷:第一次調(diào)用它時(shí),如果$PYTHONPATH以前是空的或者未設(shè)置,那么它會(huì)包含一個(gè)空字符串,該字符串被解析為當(dāng)前目錄。

    讓我們?cè)賴L試一下:

    ~/attacker_dir$ export PYTHONPATH="/a/perfectly/safe/place:$PYTHONPATH"; ~/attacker_dir$ python ../install_dir/tool.py lol ur pwnt

    看到了嗎?惡意腳本接管了程序。

    為了安全起見,你可能會(huì)認(rèn)為,清空$PYTHONPATH總該沒問題了吧?Naive!還是不安全!

    ~/attacker_dir$ export PYTHONPATH=""; ~/attacker_dir$ python ../install_dir/tool.py lol ur pwnt

    這里發(fā)生的事情是,$PYTHONPATH變成空的了,這和unset是不一樣的。

    因?yàn)樵赑ython里,os.environ.get(“PYTHONPATH”) == “”和os.environ.get(“PYTHONPATH”) == None是不一樣的。

    如果要確保$PYTHONPATH已從shell中清除,則需要使用unset命令處理一遍,然后就正常了。

    設(shè)置$PYTHONPATH曾經(jīng)是設(shè)置Python開發(fā)環(huán)境的最常用方法。但你以后最好別再用它了,virtualenv可以更好地滿足開發(fā)者需求。如果你過去設(shè)置了一個(gè)$PYTHONPATH,現(xiàn)在是很好的機(jī)會(huì),把它刪除了吧。

    如果你確實(shí)需要在shell中使用PYTHONPATH,請(qǐng)用以下方法:

    export PYTHONPATH="${PYTHONPATH:+${PYTHONPATH}:}new_entry_1" export PYTHONPATH="${PYTHONPATH:+${PYTHONPATH}:}new_entry_2"

    在bash和zsh中,$PYTHONPATH變量的值會(huì)變成:

    $ echo "${PYTHONPATH}" new_entry_1:new_entry_2

    如此便保證了環(huán)境變量$PYTHONPATH中沒有空格和多余的冒號(hào)。

    如果你仍在使用$PYTHONPATH,請(qǐng)確保始終使用絕對(duì)路徑!

    另外,在下載文件夾中直接運(yùn)行Jupyter Notebook也是一樣危險(xiǎn)的,比如jupyter notebook ~/Downloads/anything.ipynb也有可能將惡意程序引入到代碼中。

    預(yù)防措施

    最后總結(jié)一下要點(diǎn)。

  • 如果要在下載文件夾~/Downloads中使用Python編寫的工具,請(qǐng)養(yǎng)成良好習(xí)慣,使用pip所在路徑/path/to/venv/bin/pip,而不是輸入/path/to/venv/bin/python -m pip。
  • 避免將~/Downloads作為當(dāng)前工作目錄,并在啟動(dòng)之前將要使用的任何軟件移至更合適的位置。
  • 了解Python從何處獲取執(zhí)行代碼非常重要。賦予其他人執(zhí)行任意Python命令的能力等同于賦予他對(duì)你電腦的完全控制權(quán)!

    希望以上文字對(duì)初學(xué)Python的你有所幫助。以下是一些免費(fèi)的資料,可以學(xué)習(xí)學(xué)習(xí)

    總結(jié)

    以上是生活随笔為你收集整理的python 清空文件夹_Python初学者请注意!别这样直接运行python命令,否则电脑等于“裸奔”...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 女人毛片视频 | 免费国产 | 99看片| 国产精品成人电影在线观看 | 手机av网 | 日韩欧美日韩 | 久久久久久久久久久丰满 | 国产一区二区三区四区视频 | 一区二区高清在线观看 | 一级片免费在线 | 青青草国产在线视频 | 国产激情成人 | jizzjizz视频| 免费一级淫片 | 传媒视频在线观看 | 欧美激情中文字幕 | 美女被草出白浆 | 欧美三级网站 | 91精品久久久久久久久久久 | 成 人片 黄 色 大 片 | 国产swag在线观看 | 最新中文字幕2019 | 高清日韩一区 | 在线免费观看视频黄 | 欧色av| 日韩精品在线视频 | 捆绑无遮挡打光屁股 | 亚洲午夜精品久久久 | 欧美日韩亚洲免费 | 久久不卡日韩美女 | 日韩在线免费视频 | 亚洲天堂中文字幕 | 传媒一区二区 | 巨茎人妖videos另类 | 一区二区三区四区视频在线观看 | 在线免费av片 | 色翁荡息又大又硬又粗又爽 | 99热在线国产 | 国产又粗又大又黄 | 日韩一区二区影院 | 欧美成在线 | 爱爱视频天天干 | 艳妇臀荡乳欲伦交换在线播放 | 伊人久久久久久久久 | 91av入口 | 小珊的性放荡羞辱日记 | 亚洲中字在线 | 精品久久国产字幕高潮 | 影音先锋男人的天堂 | 中文字幕在线观看视频网站 | 中文字幕av高清片 | 97人妻一区二区精品视频 | 少妇av在线播放 | 欧美日韩在线看 | 亚洲精品日韩丝袜精品 | 欧美日本一二三区 | 日韩夜夜操 | 91大片免费看 | jizjiz中国少妇高潮水多 | 国产美女性生活 | 国产精品99无码一区二区 | 99久久久无码国产精品免费蜜柚 | 在线观看黄色免费网站 | 极品91| 伊人网欧美 | 久久精品无码一区 | 少妇高潮av久久久久久 | 日本狠狠操 | 草逼视频免费看 | 国产熟妇一区二区三区aⅴ网站 | 公车乳尖揉捏酥软呻吟 | www.久久99| a一级黄色 | 亚洲视频图片 | 操操操操操操操操操操 | 久久久免费高清视频 | 狼人综合视频 | 欧美精品成人在线 | 成人黄色在线播放 | 法国少妇愉情理伦片 | 少妇搡bbbb搡bbbb | 久久性av| 黄三级 | 国产不卡精品 | 人妻在线一区二区 | 天天爽夜夜爽夜夜爽精品 | 天天在线观看 | 国产制服丝袜在线 | 国产精品色哟哟 | 成人黄色小视频在线观看 | 国产探花精品在线 | 成人1区2区3区 | 日本美女操 | 日韩和一区二区 | 亚洲成av人片一区二区梦乃 | 中文字幕在线观看一区二区三区 | 伊人综合影院 | 国产精品一级视频 | 麻豆av影视 |