Python操作MySQL資料庫安全嗎?

剛從PHP投入Python大家庭的新手。

如題,要不要像PHP哪樣轉義呢?要的話需要轉義什麼?有沒有SQL注入風險?


迴避注入風險在Python里最好的辦法是使用ORM。

如果用Django那就是自帶ORM了,如果其它可以考慮SQLAlchemy。

除此二者,考慮輕量級的使用以及對已有資料庫的解析使用,強烈推薦PonyORM,對防注入的處理不錯的同時可以避免raw sql拼接,寫法非常漂亮,由足夠輕量級,效果拔群。

https://ponyorm.com


select * 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尋找適合自己的小項目?
用腳本構建的程序是怎麼保持後期重構的健壯性的?

TAG:Python | Python3x | Python入門 | Python開發 | Python2x |