确保Linux Python配置的安全性是一个多层次的任务,涉及多个方面的措施。以下是一些关键的安全策略和实践:
virtualenv
:pip install virtualenv
virtualenv my_env
source my_env/bin/activate
pip install -r requirements.txt
deactivate
bcrypt
或 scrypt
。iptables
或 ufw
)限制对服务的访问。eval()
和 exec()
,特别是在处理用户输入时。sudo yum install python3-semanage python3-policycoreutils python3-pyudev
import selinux; selinux.is_selinux_enabled()
selinux.security_get_context('/etc/passwd')
selinux.security_set_context('/tmp/testfile', 'system_u:object_r:var_t:s0')
pip install PyArmor
pyarmor gen test7.py
pyarmor g -e 2024-11-04 test7.py
pip install Cython
from distutils.core import setup
from Cython.Build import cythonize
import os
import shutil
encrypt_py_files = ['demo/demo_xxxx.py', 'utils/objdetector.py']
for encrypt_py_file in encrypt_py_files:
filename_without_extension = os.path.basename(encrypt_py_file).replace('.py', '')
# 转成so文件
setup(
ext_modules=cythonize(encrypt_py_file, language_level="3")
)
# 删除生成的c文件
os.remove(encrypt_py_file.replace('.py', '.c'))
# 删除原py文件,注意备份
os.remove(encrypt_py_file)
# 去build文件夹寻找对应的so文件
for root, dirs, files in os.walk('build'):
for f in files:
file_path = os.path.join(root, f)
# 如果是so文件并且文件名和需加密的py文件名一致
if f.endswith('so') and f.split('.')[0] == filename_without_extension:
shutil.move(file_path, encrypt_py_file.replace('.py', '.so'))
else:
# 其他文件一律删除
os.remove(file_path)
通过实施上述策略,可以显著提高Linux系统中Python配置的安全性,减少潜在的安全风险。