41、用你自己的话解释什么是 SQL 注入攻击,并说明如何使用数据验证来避免此类攻击。
SQL 注入攻击及防范方法
SQL 注入攻击是针对使用 SQL 数据库的软件产品的攻击。攻击者利用用户输入成为 SQL 命令一部分的情况,输入恶意内容使 SQL 语句产生非预期结果。
例如,正常查询特定账户信息的 SQL 语句,当攻击者输入特殊内容时,会使查询条件恒为真,从而返回所有账户信息。
防范措施:数据验证
数据验证是避免 SQL 注入攻击的关键。要为每种输入字段定义规则,并编写代码应用这些规则检查字段的有效性。若输入不符合规则,就应拒绝该输入。
输入验证示例:
- 账户号 :已知为 8 位数字,输入函数应检查是否有非数字字符。
- 姓名 :可规定长度在 2 到 40 个字符之间,字符为字母或带重音的字母及少量特殊分隔符,且以字母开头。
- 年龄 :可规定为 0 或小于 120 的正整数。
42、针对以下产品,推荐合适的认证形式并说明理由:a. 一个由广告资助的面向教师和学生的电子学习产品,允许用户推荐一系列主题的视频和其他学习材料。b. 一个移动设备上的个人理财应用程序,可根据用户设置的规则在不同账户之间自动转账。c. 一个面向企业的人力资源产品,帮助管理招聘新员工的流程。
a. 电子学习产品可采用基于知识的认证。
理由 :该产品主要面向教师和学生,安全性要求相对不高,使用密码或回答个人问题等基于知识的认证方式,简单便捷,能满足基本认证需求,且用户容易接受和操作。
b. 个人理财应用程序应采用基于知识和基于拥有物的双重认证。
理由 :此应用涉及资金自动转账,安全性至关重要。基于知识的认证如密码可作为基础认证方式,同时结合基于拥有物的认证,如向用户手机发送验证码,能大大提高认证的安全性,防止资金被盗取。
c. 人力资源产品可采用基于知识和基于属性的认证。
理由 :该产品用于企业招聘新员工,涉及企业的重要人事信息。基于知识的认证确保用户身份的基本验证,而基于属性的认证如指纹识别等,能进一步提高安全性,保护企业敏感信息不被泄露。
43、对称加密和非对称加密的区别是什么?为什么我们需要这两种加密方法?
- 对称加密 :使用相同的密钥进行信息的编码和解码,存在安全共享密钥的问题。
- 非对称加密 :使用不同的密钥进行加密和解密,不需要共享密钥,公钥可公开,私钥只有用户自己知道。
需要这两种加密方法的原因是:
- 非对称加密虽然解决了密钥交换的安全问题,但对于相同安全级别,其加密速度比对称加密慢约1000倍,在实际中只用于加密相对较短的消息。
- 对称加密速度快。
- 二者结合使用是网络上交换安全消息最广泛使用的加密方案的基础。
44、解释为什么通常更倾向于使用数据库的内置加密支持,而不是实现自己的应用程序级加密。
- 实现应用程序级加密存在诸多缺点,而使用数据库的内置加密支持可避免这些问题。
- 应用程序级加密的缺点包括:
- 多数软件工程师并非加密专家,实现可靠的加密系统复杂且昂贵,可能出错导致系统安全性不如预期;
- 加密和解密会显著影响应用程序性能,拖慢系统,可能使用户拒绝软件或不使用加密功能;
- 除加密外,还需提供密钥管理功能,通常要编写额外代码将应用程序与密钥管理系统集成。
45、解释在TLS协议中加密密钥是如何安全交换的。
服务器向客户端发送的数字证书包含服务器的公钥。服务器还生成一个长随机数,用其私钥加密后发送给客户端。客户端可以使用服务器的公钥对其解密,然后客户端自己也生成一个长随机数,用服务器的公钥加密后发送给服务器,服务器使用其私钥解密该消息。此时客户端和服务器都拥有两个长随机数。商定的加密方法包含一种从这些数字生成加密密钥的方式,客户端和服务器使用对称方法独立计算用于加密后续消息的密钥。所有客户端 - 服务器流量随后都使用该计算出的密钥进行加密和解密,无需交换密钥本身。

最低0.47元/天 解锁文章
36

被折叠的 条评论
为什么被折叠?



