专栏首页Rgcsqlalchemy防sql注入

sqlalchemy防sql注入

银行对安全性要求高,其中包括基本的mysql防注入,因此,记录下相关使用方法:

注意:sqlalchemy自带sql防注入,但是在 execute执行 手写sql时 需要考虑此安全问题

对于 where in 的防sql注入:(in 的内容一定要是tuple类型,否则查询结果不对)

in_str = tuple(input_list)
sql = "(SELECT count(id) FROM {0} WHERE {0}.id IN :in_str);".format(cls.__tablename__)
cursor = db.get_engine(current_app, cls.__bind_key__)
return cursor.execute(text(sql), in_str=in_str).fetchone()[0]

对于 where 一般的防sql注入:

sql = """
                    (select {index}.sec_id,
                    from    {index},
                            {main}
                    where   {index}.sec_id= {main}.sec_id
                    and     {main}.user_id=:user_id);
                """.format(index=TableA.__tablename__,
                           main=TableB.__tablename__)
        cursor = db.get_engine(current_app, TableB.__bind_key__)
        return cursor.execute(text(sql), user_id=user_id).fetchall()

防sql注入 只能对 where里面 等于 号 后面的进行防注入,其他部分的 字符串 仍然需要拼接

其余关键字中的使用方法 参考如下 官网教程

官网教程:https://docs.sqlalchemy.org/en/latest/core/tutorial.html#using-textual-sql

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • memory_profiler的使用

    作用:memory_profiler是用来分析每行代码的内存使用情况 使用方法一:    1.在函数前添加 @profile         2.运行方式: p...

    用户1558882
  • Python预编译语句防止SQL注入

    今天也在找python的预编译,早上写的sql是拼接来构成的。于是找了2篇文章,还不错,分享一下大家学习。

    用户1558882
  • json.loads()的字符串中为单引号引发的错误

    Traceback (most recent call last): File "G:/FastWorkStateServer/logs/redis_fabu....

    用户1558882
  • 为什么这条异常没有上报? HTTP 429

    刚开始碰到 Sentry 中未收到报错 (Event) 时,一直在尝试去找 Sentry 服务器端的 Inbound Filter 设置以及 Sentry 客户...

    山月
  • 多人实时互动之各WebRTC流媒体服务器比较

    随着网络基础设施的提高,音视频实时通信越来越成为人们日常生活和工作中必不可少的需求。2011年 WebRTC的出现,则更加速了这种需求变为现实的可能性。

    音视频_李超
  • JS实现自定义排序

      参数:target——要以本地特定的顺序与 stringObject 进行比较的字符串。

    步履不停凡
  • 从逻辑入手优化数据库性能

    作者介绍 ? 谢浩 现任职于云和恩墨,具有多年oracle数据库企业级运维经验,擅长结合业务、硬件系统制定各种项目方案。 在oracle性能优化主要包括:数据架...

    数据和云
  • UI篇-UIResponder之事件传递和响应精析

    这篇文章只讨论触摸事件。对于触摸事件UIResponder内部提供了以下方法来处理事件:

    進无尽
  • 渗透测试之API测试技巧

    若API形式为: /api/v3/login,那么可尝试 /api/v2/login, /api/v1/login等。

    瓦都剋
  • 使用 Spring Security 5.1 客户端自定义授权和令牌请求

    原文链接:https://www.baeldung.com/spring-security-custom-oauth-requests

    用户1516716

扫码关注云+社区

领取腾讯云代金券