Django-rest-framework和django-rest-framework-jwt APIViews和验证Authorization标头

时间:2018-12-11 19:53:15

标签: django django-rest-framework jwt

我正在使用DRF和DRF-jwt保护我的API。目前我有一些这样写的CBV

## Your data
df = read.table(text="a b c classes
1 2 0  a
0 0 2  b
0 1 0  c", 
header=TRUE)

library(igraph)

g = graph_from_adjacency_matrix(as.matrix(df[,1:3]), weighted=TRUE)
LO = matrix(c(0,0,0,3,2,1), ncol=2)
plot(g, layout=LO, edge.label=E(g)$weight, vertex.shape="rectangle",
    vertex.color="white", edge.curved=c(0,0,0.15,0.15))

根据我的理解,APIView和权限类IsAuthenticated确保与请求标头一起发送的Authorization令牌。您如何确定没有人修改JWT?我怎么知道每次使用我的Django应用程序中的Secret_Token来解码/编码/验证/验证随每个请求接收/发送的JWT?这样的安全性足以让我的API向公众开放吗?

1 个答案:

答案 0 :(得分:2)

已通过身份验证只是确保当前request.user.is_authenticated为True。身份验证后端负责检查标头,验证令牌等并设置User.is_authenticated。这是您在设置rest-framework-jwt时添加到您的设置文件中的一个。这是一个完全出于安全身份验证目的而创建的应用程序,因此,足够了。但是您仍然必须注意其他方面,例如SSL,sql注入等(搜索Django安全性)。 警告!不要使用.format创建SQL查询,因为这是SQL注入的直接方法。如果以后使用某些用户提供的参数进行查询,则将有危险。将参数作为第二个参数传递给cursor.execute或使用ORM避免这种情况。