我的架构经验系列文章 - 后端架构 - 安全层面

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 回到索引 http://www.cnblogs.com/lovecindywang/archive/2012/12/23/2829828.html   安全层面:   SQL注入 SQL注入是一个古老的安全问题,现在任何程序都不应该再出现这样的问题了,其原理非常简单,在过去大多数程序都是直肠子通数据库的,因此如果拼接SQL并且在参数上没有做好过滤或者没有使用参数形式来生成SQL语句的话可能会导致用户在页面上输入的恶意代码直接在数据库中执行。

回到索引 http://www.cnblogs.com/lovecindywang/archive/2012/12/23/2829828.html

 

安全层面:

 

  • SQL注入

SQL注入是一个古老的安全问题,现在任何程序都不应该再出现这样的问题了,其原理非常简单,在过去大多数程序都是直肠子通数据库的,因此如果拼接SQL并且在参数上没有做好过滤或者没有使用参数形式来生成SQL语句的话可能会导致用户在页面上输入的恶意代码直接在数据库中执行。SQL注入的危害点在于整个网站有1000个数据点,如果其中有1个点有漏洞那么整站的数据其实都有危险了,很多开发会注重资金相关的模块但是忽略新闻相关的模块,如果都是使用一套数据库的话那么一个不重要模块的漏洞就会影响整站。也有一些开发比较会注意GET参数的验证但是会忽略POST参数的验证,这也是很容易出问题的,POST不会因为不在URL上显示就安全多少的,其内容还是用户在表单中输入提交的。在这里提SQL注入的问题是希望开发人员都有这个意识,整站的安全系数是以整站安全最薄弱的模块来衡量的,就像Windows的体验评分是以最低的那个数字来作为结果的而不是最高的那个数字作为结果的。

 

  • 客户端信任

做网站开发要有这个意识,任何客户端提交过来的数据都是不值得信任的,这包括GET参数、POST参数、COOKIE的内容。所有的这些都是可以伪造的,浏览器只是为了方便提供的一个HTTP的数据提交器和HTTP标签的解析器,黑客是不会使用浏览器的,HTTP头和主体中的内容可以随便改的。因此,对于任何客户端传过来的数据都需要进行严格的过滤和检查,脑子里始终有这么一个想法的话可以避免很多安全问题。另外,由于COOKIE是存在用户本地的也是客户端传过来的,其中的安全问题包括不能随便相信COOKIE中存的值,也不能随便把敏感的数据保存在客户端以免让用户自己的隐私信息得到泄露。一个简单的例子,如果我们通过COOKIE中的用户名来判断用户是否已经登陆的话,用明码的用户名肯定是不合理的,如果用户随便改一个管理员的用户名难道系统就认为是管理员登陆了?解决的办法是存一个加密后的用户名,但这样也是不安全的,因为一旦加密方法别破解的话还是会产生巨大的漏洞,因此可以在COOKIE中同时存用户名密码,也就是说网站其实是用你的用户名和密码帮你在一段时间内自动登陆,而不是真正记住你的登陆,由于我们还要确保用户的密码不会得到泄露(如果用户机器上有密码的话那么存明码的密码也是对用户的不负责),因此我们需要在COOKIE中存加密后的用户名和哈希后的密码,为了安全还可以把这两个数据再加密一次保存在COOKIE中。

 

 

作者: lovecindywang
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
相关文章
|
10天前
|
缓存 Java 数据库
后端技术探索:从基础架构到高效开发的实践之路
【10月更文挑战第7天】 在现代软件开发中,后端技术是支撑应用运行的核心。本文将探讨如何从后端的基础架构出发,通过一系列高效的开发实践,提升系统的性能与可靠性。我们将深入分析后端框架的选择、数据库设计、接口开发等关键领域,并提供实用的代码示例和优化策略,帮助开发者构建更稳定、高效的后端系统。通过这篇文章,读者将获得关于后端开发的全面理解和实践指导,从而更好地应对复杂项目需求。
35 0
|
11天前
|
设计模式 API 开发者
探索现代后端开发:微服务架构与API设计
【10月更文挑战第6天】探索现代后端开发:微服务架构与API设计
|
1天前
|
Java 持续交付 微服务
后端开发中的微服务架构实践与挑战####
本文深入探讨了微服务架构在现代后端开发中的应用,通过具体案例分析,揭示了其如何助力企业应对业务复杂性、提升系统可维护性和可扩展性。文章首先概述了微服务的核心概念及其优势,随后详细阐述了实施微服务过程中的关键技术选型、服务拆分策略、容错机制以及持续集成/持续部署(CI/CD)的最佳实践。最后,通过一个真实世界的应用实例,展示了微服务架构在实际项目中的成功应用及其带来的显著成效。 ####
|
2天前
|
负载均衡 监控 API
后端开发中的微服务架构实践
【10月更文挑战第15天】 在当今的软件开发领域,微服务架构已成为一种流行的技术趋势。本文将探讨微服务架构的基本概念、优势以及在实际后端开发中的应用。我们将通过具体案例分析,了解如何设计和实现一个高效的微服务系统,以及如何应对在实施过程中可能遇到的挑战。
12 1
|
3天前
|
消息中间件 监控 Kubernetes
后端开发中的微服务架构实践与挑战####
本文将深入探讨微服务架构在后端开发中的应用,通过实际案例分析其优势与面临的挑战。我们将从微服务的基本概念入手,逐步剖析其在现代软件开发中的重要性及实施过程中需注意的关键因素。无论你是后端开发的新手还是资深工程师,这篇文章都将为你提供有价值的见解和启发。 ####
|
6天前
|
安全 Java 关系型数据库
探索后端技术:构建高效、安全的应用服务
在当今数字化浪潮中,后端技术作为软件架构的核心支柱,承载着处理数据逻辑、保障应用性能与安全等关键任务。本文旨在深入浅出地探讨后端开发的重要概念、主流技术栈以及未来发展趋势,为开发者提供一份指南,以助力构建既高效又安全的应用程序。
|
14天前
|
Kubernetes 安全 微服务
使用 Istio 缓解电信 5G IoT 微服务 Pod 架构的安全挑战
使用 Istio 缓解电信 5G IoT 微服务 Pod 架构的安全挑战
38 8
|
16天前
|
消息中间件 监控 数据管理
后端开发中的微服务架构实践与挑战
在当今软件开发领域,微服务架构因其高度的模块化和灵活性而备受关注。它通过将应用程序分解为小型、独立的服务来运行,从而简化了开发、部署和扩展过程。本文将探讨微服务架构的基本概念、实践方法以及在实际应用中面临的挑战,旨在帮助读者更好地理解和应用这一现代技术趋势。
|
18天前
|
数据管理 API 持续交付
深入理解后端开发中的微服务架构
本文将介绍微服务架构的基本原理、优势与挑战,并通过具体案例展示如何在实际项目中应用。我们将从传统的单体应用出发,探讨为何需要微服务架构以及它如何带来更大的灵活性和可维护性。同时,文章也会讨论实施微服务时可能遇到的问题,如分布式事务和服务间通信等,并提供一些解决方案。
|
3天前
|
监控 安全 开发者
后端开发中的微服务架构实践与挑战
在当今的软件开发领域,微服务架构因其灵活性和可扩展性而受到广泛关注。本文将探讨微服务架构的基本概念、优势以及在后端开发中的具体实施方法。通过分析实际案例,我们将深入了解如何克服微服务实施过程中的挑战,包括服务划分、数据管理、通信协议选择等关键问题。此外,文章还将讨论微服务架构下的性能优化和安全性考虑,为开发者提供实用的指导和建议。