2013-05-17 226 views
1

我收到來自其他站點的傳入POST,下面是我目前如何獲取它。我是Django的新手,但很少有東西會跳出來,我想知道我是否應該擔心。Django和SQL注入示例

SQL注入:正如我不能清理後的數據使用request.POST['message']開放是SQL注入? 安全:有沒有更好的方法來做到這一點?

@csrf_exempt 
def incoming_message(request): 
    if request.POST: 
     # Match incoming keyword. 
     keyword = Keyword.objects.get(keyword=request.POST['message']) 
+0

我不明白是什麼問題,django會做什麼才能正確地逃避您的輸入 – Bryan

+0

我的擔心是SQL注入,在其他語言中,我嘗試過允許直接過濾等,而不先清理數據是非常糟糕的,並打開一個很大的安全缺陷。 – GrantU

回答

5

Django在其queryset驅動程序中內置了SQL injection prevention

通過使用Django的查詢集,生成的SQL將被基礎數據庫驅動程序正確轉義。

由於您使用的是查詢集,因此您將使用SQL注入。您可能想要檢查一下您是否熟悉Django提供的XSS protection。根據您使用數據的方式,您可能需要自己逃避。