Appscan
- 定义:是用于web项目的安全测试工具,扫描网站所有url(自动+手动),自动测试是否存在各种类型的漏洞。
- 工作原理:
-
通过探索了解整个web页面结果
-
通过分析,使用扫描规则库对修改的HTTP Request进行攻击尝试
-
分析 Response 来验证是否存在安全漏洞
漏洞扫描工具-OpenVas
- Openvas是开源的,是Nessus项目分支,用于管理目标系统的漏洞,检测目标网络或主机的安全性。它的评估能力来源于数万个漏洞测试程序,openvas 早起版本还有一个客户端,现在的版本已经不提供客户端程序,现基于B/S(浏览器/服务器)架构进行工作,执行扫描并提供扫描结果。
逻辑删除(软删除)
- 逻辑删除是指文件没有被真正的删除,只不过是文件名的第一个字节被改成操作系统无法识别的字符。通常这种删除操作是可逆的,就是说用适当的工具或软件可以把删除的文件恢复出来。
- gorm的查找会默认加上 where deletedAt = Null, 所以软删除的行,使用gorm查询时是查不到的,需要用Unscoped()查询软删除数据,也可以使用Unscoped()彻底删除软删除数据
db.Unscoped().Find(&users)
db.Unscoped().Delete(&User{ID: 1})
SQL语句含义
db = db.Select("sys_users.*, t.last_login_at, t.last_login_ip, i.identity_id as remote_identity_id, i.id as identity_id,i.status identity_status ").
Joins("left join (select * from sys_user_status s where s.id in (select max(sus.id) FROM sys_user_status sus group by sus.user_id)) t on t.user_id = sys_users.id").
Joins("left join (select * from testnet_identity ti where ti.id in (select max(tis.id) FROM testnet_identity tis where tis.deleted_at IS NULL group by tis.user_id)) i on i.user_id = sys_users.id ").
Joins("join sys_user_authority auth on auth.sys_user_id=sys_users.id")
- 选择sys_users数据表的所有列,连接表t的t.last_login_at, t.last_login_ip列,连接表i的i.identity_id列(作为remote_identity_id列)、i的i.id列(作为 identity_id列)、i的i.status列(作为identity_status列)
- 将sys_user_status表与sys_user表左连接,连接条件为t.user_id = sys_users.id
- 对应的SQL语句为
Select sys_users.*, t.last_login_at, t.last_login_ip, i.identity_id as remote_identity_id, i.id as identity_id,i.status identity_status
from sys_users
left join (select * from sys_user_status s where s.id in (select max(sus.id) FROM sys_user_status sus group by sus.user_id)) t on t.user_id = sys_users.id
left join (select * from testnet_identity ti where ti.id in (select max(tis.id) FROM testnet_identity tis where tis.deleted_at IS NULL group by tis.user_id)) i on i.user_id = sys_users.id
join sys_user_authority auth on auth.sys_user_id=sys_users.id;