【安全開發】python安全編碼規范


申明:本文非筆者原創,原文轉載自:https://github.com/SecurityPaper/SecurityPaper-web/blob/master/_posts/2.SDL%E8%A7%84%E8%8C%83%E6%96%87%E6%A1%A3/2018-08-17-SDL-4-python%E5%AE%89%E5%85%A8%E7%BC%96%E7%A0%81%E8%A7%84%E8%8C%83.md

python語言安全

本身要注意的有,一些危險函數,危險模塊的調用,主要是系統調用。這個如果調用一定要對輸入輸出做好過濾,以下是代碼中各種導致進行系統調用的方式。盡量避免。

  • 避免各種情況導致系統調用

  • 謹慎使用Eval

  • 數據序列化

Web編程

對應Web編程中安全概念在python web框架中的實現。url跳轉,目錄遍歷,任意文件讀取也需要考慮在內。針對不同的框架也需要。

Flask 安全

  • 使用Flask-Security
  • 直接生成 HTML 而不通過使用Jinja2
  • 不要在用戶提交的數據上調用Markup
  • 使用 Content-Disposition: attachment 標頭去避免上傳html文件
  • 防止CSRF,flask本身沒有實現該功能

Django 安全

可參考phithon的博客,有較多相關資料。

  • 關閉DEBUG模式
  • 關閉swagger調試
  • 妥善保存SECRET_KEY
  • 使用SecurityMiddleware
  • 設置SECURE_HSTS_SECONDS開啟HSTS頭,強制HTTPS訪問
  • 設置SECURE_CONTENT_TYPE_NOSNIFF輸出nosniff頭,防止類型混淆類漏洞
  • 設置SECURE_BROWSER_XSS_FILTER輸出x-xss-protection頭,讓瀏覽器強制開啟XSS過濾
  • 設置SECURE_SSL_REDIRECT讓HTTP的請求強制跳轉到HTTPS
  • 設置SESSION_COOKIE_SECURE使Cookie為Secure,不允許在HTTP中傳輸
  • 設置CSRF_COOKIE_SECURE使CSRF Token Cookie設置為Secure,不允許在HTTP中傳輸
  • 設置CSRF_COOKIE_HTTPONLY為HTTP ONLY
  • 設置X_FRAME_OPTIONS返回X-FRAME-OPTIONS: DENY頭,以防止被其他頁面作為框架加載導致ClickJacking
  • 部署前運行安全性檢測 django-admin.py checksecure --settings=production_settings

審計工具

安裝使用方式較為簡單,所以不做介紹。

引用


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM