无代码软件开发应用的安全性

开发者开发“客户端-服务器端”架构的软件应用时,有很多安全性管理的考量点,对于移动应用,安全性处理更加重要

移动端应用为什么更加需要注意安全问题

  • 信息展示或存储于移动设备上:因为在移动端的手机平板等设备上使用,所以信息存放于这类设备上
  • 被他人使用、丢失或失窃:移动设备比电脑等更加容易丢失,而移动设备中如果有敏感信息则容易被他人获取

信息使用控制

  • 授权登录管理:用密码来登录的控制是最基本的安全控制方式,除非一个应用任何处理情况下都不会有风险,一般都应用账号密码登录使用软件应用
  • 更多密码管理:如果需要进行敏感信息处理,则可以使用更多的密码验证逻辑来控制信息的使用
  • 基于角色的功能使用控制:TERSUS无代码开发有基于用户角色的权限管理模块,和其他所有功能元件一样可拖放使用(是由其他基本元件由官方人员组合开发而来的);我们的免费项目框架也有我们用基本元件组合开发的此功能模块;所有用户要使用此控制的系统功能时,必须先进行登录,而用户是分配了角色的,不同角色可以设定有不同的权限点名称,这些权限点名称指为某个显示或行为处理元件设定的一个属性值(requiredPermission),如果用户的角色有包含此权限点,则用户登录后可以在显示界面中看到对应的内容,且可以操作触发对应的软件功能

应用安全性

  • 服务器端验证:由用户端提供的用户身份和资质信息,客户端有验证后还应在服务器端必须时进行再次检查;这是正常的“客户端-服务器端”架构的软件应考虑的;在TERSUS无代码开发平台中,服务器端行为处理逻辑如果是很重要的信息处理,那么请使用“Secure Service带安全验证模块的服务器处理”元件,而不是“Service服务器端行为处理”元件
  • 防止SQL注入:在用户输入内容进行传入处理时,最主要的风险是输入内容中有SQL语句,因为一般输入内容后就是进行数据库的处理,这类处理都是SQL语句完成的,如果输入内容中包含了SQL语句片断,则会出现SQL注入风险
  • 跨站脚本攻击(Cross-site scripting):是网页应用最普通的攻击风险,如果网站有HTML超文本编辑处理,则在显示等处理前,应进行超文本内容的过滤处理

一般进行业务处理时应考虑以下内容:

1、部署服务器使用SSL证书服务,访问时用HTTPS安全访问

2、在项目目录中,用下拉菜单中“Show services in project ...”选项来查找项目中所有的服务器端逻辑处理对象,对每一个输入和输出项进行审查

3、在服务器端行为元件中进行用户验证处理,即使在客户端进行过用户身份验证,也有必要在此进行验证处理,而我们Secure Service元件就自带验证框架;验证处理包含对输入是否有意义的验证处理,和用户是否有权操作的验证

· 比如在一个在线商城系统中,当用户下单后长时间没有处理订单时,可以进行取消订单处理,那么取消订单的服务器端逻辑中应包含:

  • 验证此订单是否属于此用户
  • 订单装态是否在执行当前操作时仍是可取消的

4、确保输出给用户的数据是允许用户使用或查看的(如果设计中数据信息有输出,即使没有显示到屏幕中,也有可能被“看到”)

5、为防止用户端的输入有SQL注入风险,开发时应注意不允许用户输入带SQL片断的内容, Database QueryDatabase Update中不能有SQL语句内容、Advanced Find中不能有Filter或Table内容、Call Procedure中不能有数据库处理程序内容

6、为防止跨站脚本攻击,如果应用页中有HTML超文本输入处理(如使用超文本编辑器元件),并进行超文本显示,则应使用“Filter HTML超文本过滤”元件进行文本处理检查是否有无效的字符及内容

· 注意正常的显示元件中,比如字符显示元件中显示的内容实际是经过编码处理的,去掉了脚本字符

在内网/局域网部署应用

  • 在内网部署比较好,因为内网是受限制的网络,没有权限不能使用网络服务
  • 另一方面,使用用户有可能因为能访问到服务,所以可能修改或处理敏感信息,所以应参考以上安全性说明进行内容控制

在跳板机/内网隔离区DMZ部署应用

  • 在跳板机/内网隔离区DMZ部署的应用,因为与内网中信息是隔离的,所以内网信息只有可能部分能够在应用中获取到,正常情况下,这类应用是不能直接访问内网中的数据库和其他文件资源的
  • 如果不能直接访问内网,则企业信息相对更加安全,内网可能访问跳板机/内网隔离区中数据进行信息获取和交互处理,而且只是部分信息的处理

在云服务器部署应用

  • 如果部署在云服务器,则应用和数据一般都是隔离防护较好的,基本不会有敏感信息风险,另一方面云服务器对硬件、服务器系统、服务器软件的维护更新及时且有专门的防护功能,在此方面的安全性是最高的
  • 设计应用时逻辑中也应考虑安全性问题
打开APP阅读更多精彩内容