Python操作MySQL資料庫安全嗎?
01-01
剛從PHP投入Python大家庭的新手。
如題,要不要像PHP哪樣轉義呢?要的話需要轉義什麼?有沒有SQL注入風險?
迴避注入風險在Python里最好的辦法是使用ORM。
如果用Django那就是自帶ORM了,如果其它可以考慮SQLAlchemy。
除此二者,考慮輕量級的使用以及對已有資料庫的解析使用,強烈推薦PonyORM,對防注入的處理不錯的同時可以避免raw sql拼接,寫法非常漂亮,由足夠輕量級,效果拔群。
https://ponyorm.comselect * from foo where foo_name=%s, values=("fuckyou",)類似於這種形式就可以
和php類似,不要直接拼接sql,而是用參數綁定方式。另外試試ORM也不錯
請使用編譯後的SQL
幹嘛不用現成的庫呢,比如 SQLAlchemy
SQLAlchemy - The Database Toolkit for Python
推薦閱讀:
※哪裡有優秀的python代碼可供閱讀?
※python 3.5 中 PEP0484 新加入的 Type Hints 的使用方法是什麼?
※用python去修改linux環境變數為何無效?
※編程初學者如何在GitHub尋找適合自己的小項目?
※用腳本構建的程序是怎麼保持後期重構的健壯性的?