#python #secure_coding #coding #code
اگر با کتابخونه subprocess در پایتون کار کرده باشید حتما قطعه کد مقابل رو دیدید:
از لحاظ امنیتی این کد مشکل داره؟
جواب: بله!
اما چرا؟ وقتی شما مقدار shell رو برابر با True قرار بدید subprocess شِل رو در اختیار میگیره و به Shell میگه دستور رو اجرا کن (subshell). در واقع یعنی تمامی متغیر های محیطی (Variables) و تمامی ویژگیهای شل، قبل از اجرای دستور echo $HOME، پردازش میشوند.
یه مثال برای اینکه خودتون به چشم ببینید خروجی رو میتونید اجرا کنید:
اگر با کتابخونه subprocess در پایتون کار کرده باشید حتما قطعه کد مقابل رو دیدید:
import subprocess
print(subprocess.call('echo $HOME', shell=True))
از لحاظ امنیتی این کد مشکل داره؟
جواب: بله!
اما چرا؟ وقتی شما مقدار shell رو برابر با True قرار بدید subprocess شِل رو در اختیار میگیره و به Shell میگه دستور رو اجرا کن (subshell). در واقع یعنی تمامی متغیر های محیطی (Variables) و تمامی ویژگیهای شل، قبل از اجرای دستور echo $HOME، پردازش میشوند.
یه مثال برای اینکه خودتون به چشم ببینید خروجی رو میتونید اجرا کنید:
>>> import subprocess@securation
>>> subprocess.call('echo $HOME')
Traceback (most recent call last):
...
OSError: [Errno 2] No such file or directory
>>>
>>> subprocess.call('echo $HOME', shell=True)
/user/invoxes
چندتا از دوستان منابعی درمورد برنامه نویسی امن نیاز داشتن بهشون گفتم در کانال درج میکنم استفاده کنید :
اسلاید و کتابچه کارگاه کد نویسی امن آپای دانشگاه محقق اردبیلی
CPP Slide : https://cert.uma.ac.ir/filemanager/userfiles/news/Files/Secure_c++_(2).pdf
PHP Slide : https://cert.uma.ac.ir/filemanager/userfiles/news/Files/php[edited].pdf
PHP handbook : https://cert.uma.ac.ir/filemanager/userfiles/news/Files/secure_coding_php.pdf
CPP :https://cert.uma.ac.ir/filemanager/userfiles/news/Files/secure_coding_c++.pdf
.Net : https://cert.uma.ac.ir/filemanager/userfiles/news/Files/secure_coding_dotnet.pdf
Andriod : https://cert.uma.ac.ir/filemanager/userfiles/news/Files/secure_coding_android.pdf
🆔 @securation
#secure_coding #security
#cpp #Android #dotnet #php
🆔 @securation
اسلاید و کتابچه کارگاه کد نویسی امن آپای دانشگاه محقق اردبیلی
CPP Slide : https://cert.uma.ac.ir/filemanager/userfiles/news/Files/Secure_c++_(2).pdf
PHP Slide : https://cert.uma.ac.ir/filemanager/userfiles/news/Files/php[edited].pdf
PHP handbook : https://cert.uma.ac.ir/filemanager/userfiles/news/Files/secure_coding_php.pdf
CPP :https://cert.uma.ac.ir/filemanager/userfiles/news/Files/secure_coding_c++.pdf
.Net : https://cert.uma.ac.ir/filemanager/userfiles/news/Files/secure_coding_dotnet.pdf
Andriod : https://cert.uma.ac.ir/filemanager/userfiles/news/Files/secure_coding_android.pdf
🆔 @securation
#secure_coding #security
#cpp #Android #dotnet #php
🆔 @securation