WEB安全:web代码安全问题总结

Web安全(吴翰清) 安全工程师的核心竞争力不在于他能拥有多少个 0day,掌握多少种安全技术,而是在于他对安全理解的深度,以及由此引申的看待安全问题的角度和高度。 第一章 我的安全世界观 脚本小子 “Script Kids”。 黑客精神所代表的 Open、Free、Share。 Web 1.0 服务器端动态脚本的安全问题。 SQL注入的出现是Web安全史上的一个里程碑。 XSS(跨站脚本攻击)的出现则是W 阅读详情

web代码安全问题总结

一,   数据库安全性

1,    MSSQL数据库安全性

l  web中不允许使用sa级的用户连接数据库

解决方法:

  • 删除sa用户,新建一个权限为sa的用户,用户名和密码一样要复杂。以防暴力破解。
  • 新建一个web连接用户,去掉所有服务器角色,在用户映射中加入此用户要操作的数据库和db_public身份。
  • 如果需要其它操作要另加权限(如只加insert/delete/select/update)。
  • 每个人都没法保证自己写的代码没有漏洞。只要在数据库层做下处理以防入侵。如果有SQL注入db_public身份一样能对数据库添加/修改/删除权限,所以一定不能存在SQL注入漏洞。
  • 如果能防SQL注入和权限限制就很难发生暴库/跨库现像。

2,    Access数据库安全性

解决方法:

  • 防暴库:在数据库连接时加入错误处理代码,如果数据库连接失败就提示错误信息或转向。不能由系统本身提示错误信息,
  • 防下载。

u  第一步:新建一个表。

u  第二步:在表中建一个字段,名称随意,类型是OLE对象,然后用ASP代码向字段中添加一条记录写入单字节的"<%" 代码为:Insert into tablename(fieldname) value (chrB(asc("<")) & chrB(asc("%")))。

u  第三步:将数据库改名为*.ASP

  • 最安全的方法是用使用ODBC数据源连接

 

二,   web代码安全性

1,    备份文件时的小漏洞。

有些ASP编辑器会自动备份asp文件,并且改名为*.bak,这样就存在了会被下载的漏洞,在给asp文件改名时,不要修改为*.txt/.bak/等等,一定要保存扩展名不变(*.asp),在上传到站点时请不要上传备份文件。

2,    防SQL注入。

SQL注入主要是单引号没有过滤,让人利用,重新生成一个具有威胁性的SQL语句。

如:http://www.livexy.com/view.asp?id=100 如果存在SQL注入我们就可以这么写:http://www.livexy.com/view.asp?id=100 ;delete * from tablename;后台运行时为select * from aaa where;delete * from tablename

在这里要提醒大家,不要认为.net的安全性高就没有SQL注入了。错,只要和数据库操作有关的都存在SQL注入漏洞。无论是软件还是网站,都存在。

解决方法:

  • 在页面的开始位置过滤接收到的非法字符,如exec /delete /insert into/update/’ 等等,这里过滤不是指将非法字符过滤为空串,而是过滤为相近的字符。或者如果存在非法字符则转向到错误处理页面。这里说个例子如果将exec过滤为空串时会出来什么后果,如果字串中存在exexecec 请问过滤后是什么,还是exec。这里不多说了,大家都明白了哈。
  • 如果接收参数为数值型时,必需要先判断数据类型,以防出现其它错误。往往黑客信息的来源就是页面出错的信息。
  • 如果参数为字符型时,必需要过滤字符串中的单引号为双引号或其它字符。

这里写个例子:往往我们的代码都是这么写的select * from aaa where bbb=’” + sVal +”’” 表面上看是没有问题的,是正确的,不过此句存在SQL注入。为什么呢,请看:sVal的值是外部提交的数据,如果sVal的值为aaa’;delect * from bbb;-- 写在一起就是:select * from aaa where bbb=’ aaa’;delect * from bbb;--‘其中-- ‘为注释。

  • 使用DbParameter比拼接SQL来的完全的多。

3,    登录漏洞。

解决方法:

  • 过滤非法字符串
  • SQL写法 select password from user where username=’” + sqlstr(sUser) + “’” 其中sqlstr()为过滤非法字符串函数,sUser为用户名文本框中输入的字符。然后在判断数据库中的密码和输入的密码是否一致。
  • 原理:由用户名在数据库中找到此用户的记录,然后在用密码比较。千万不要用“select * from user where username=’” + sqlstr(sUser) + “’ and password=’” + sqlstr(sPass) + “’” 然后在判断是否为空。”这种方法。

4,    防另存为

解决方法:

  • <NOSCRIPT><IFRAME SRC="*.html"></IFRAME></NOSCRIPT>

防止别人下载网站的HTML代码,当然不是很完美,不过也够呛。

5,    防被内嵌

解决方法:

  • <script>if (self != top) { top.location = self.location; }</script>

防止别人内嵌我们的网站,然后做些手角。如键盘记录呀,监视我们输入的数据呀等等。

6,    防本地提交数据

解决方法:

  • 在保存数据时第一步判断来源,如果不是从指定的来源提交数据,出示错误信息。
  • 第二步对提交数据进行非法字符过滤。
  • 第三步保存到数据库,保存时一定要进行错误处理。

7,    防无限刷新

解决方法:

  • 这个比较难做,当然也有很多种方法。
  • 1,在服务器上做手角
  • 2,在代码中加入访问日志信息,通过分析日志信息来判断同一人访问频率。
  • 3,用js操作cookies来记录访问日志信息,判断访问频率。这种方法不会占用服务器的资源。

8,    防无限提交数据/防ajax自动提交数据

解决方法:

  • 加入验证码和提交时间(如一分种发信息)限制功能。

9,    防js代码

解决方法:

  • 要想过滤所有js代码这点很难办法,js攻击漏洞占大多数。Js的写法也千奇白怪。这里发上一些具有攻击性的html代码。这些都是常见到的,并且每一种都不同的写法。单引号和双引号不同/大小写不同/先后循序不同/tab和空格不同/Html标签不同/事件不同/样式不同等等。
  • <P style="BACKGROUND:url(JAVA   SCRIPT:alert('11111'))">test</P>
  • <body>
  • <img src="http://www.challenger.se/images/note_yellow.gif"/>
  • <img src="JAVASCRIPT:alert('888888')" />
  • <STYLE>div{behavior: url("htc.js");};<style>
  • <STYLE>body{oMouseOut: eXpreSsIon(onclick = function(){alert('33333');})} <style>
  • <STYLE>body{background:url(JAVASCRIPT:alert('22222'));} <style>
  • <STYLE>@import "JAVASCRIPT:alert('444444')"; <style>
  • <link href="JAVASCRIPT:alert('777777')" rel="stylesheet" />
  • <script src= hk.js></script>
  • <P style="BACKGROUND:url(JAVASCRIPT:document.write('<script src=hk.js></script>'))">test</P>
  • <iframe src='hk1.html'></iframe>

10,防Cookie假冒

解决方法:

  • 密码信息不要存放在Cookie中
  • 在用到Cookie中的数据时,一定要从数据库中重新读取。然后比较。以防Cookie篡改。
  • Cookie数据需要加密

11,缓冲区溢出

解决方法:

  • 服务器中不要打开无用软件。
  • 在服务端运行的代码中,用到一个对像一定要释放。
  • 在客户端运行的js/vbs/activex/flash代码中,用到的dom对像在结束时一定要释放。

12,其它

  • 防浏览器插件
  • 修改IE的安全选项把“活动脚本”和ActiveX的运行设置为禁用或提示。
  • 或在IE安全设置里将安全级别设为高。隐私选项也设为高。

三,   服务器安全性

  • 关闭无用端口
  • 下载补丁/更新操作系统
  • 安装杀毒软件
  • 安装防火墙
  • 如果服务器上有多个站点,为每一个站点分配权限,每个站点都不能操作其它文件和目录,也不能影响到其它站点。
Web安全.pdf 白帽子讲Web安全,吴翰清 著,我的安全世界观;客户端脚本安全;服务器端应用安全;互联网公司安全运营。 立即下载

相关推荐

WEB安全技术

http协议、常见漏洞攻击及防护,包括SQL注入、XSS跨站脚本攻击、文件上传漏洞、渗透工具的使用

web安全问题汇总

web代码安全问题总结 一, 数据库安全性 1, MSSQL数据库安全性 l web中不允许使用sa级的用户连接数据库 解决方法: 删除sa用户,新建一个权限为sa的用户,用户名和密码一样要复杂。以防暴力破解。 新建一个web连接用户,去掉所有服务器角色,在用户映射中加入此用户要操作的数据库和db_public身份。 如果需要其它操作要另加权限(如只加insert/d...

weixin_30436101的博客 327

web安全技术

在這樣的網站設計與架設的概念下,如果該網站之 網頁存取權限或實體的資料夾檔案權限控管不當, 攻擊者只要猜測或使用工具取得該網站內資料夾或 檔案文件名稱,便可從Internet下載存放於該網站 (資料夾)內本屬不應公開的文件或資料庫。

(2023版)零基础入门Web安全,收藏这一篇就够了

Web安全是指保护Web应用程序、Web服务器和Web浏览器免受各种网络攻击和恶意行为的方法和技术。随着越来越多的业务和活动转移到互联网上,Web安全成为越来越重要的问题。

m0_74914256的博客 3597

zabbix6.0.4拓扑图链路显示流量

1. 背景介绍 网络流量监控是网络管理员必备功课,以前研究cacti的weathermap插件,网络流量大小和拥塞情况一清二楚,随着cacti的没落,weathermap插件也不能再继续使用,此时就需要学习了解新的替代方案。 经过研究和实际测试,发现zabbix的拓扑图有这个功能。 以下验证了zabbix的拓扑图显示线路流量的功能。 2. Zabbix 6显示拓扑图流量过程 选择监测-拓扑图 点进Local ne...

u013930899的博客 8477

网络可视化工具netron详细安装流程

netron安装目录1.netron 简介2.不同操作系统下的安装使用方式2.1 在线版本:只要有浏览器就可以2.2 不同操作系统安装使用3.netron支持的网络框架4.netron测试演示 1.netron 简介 在实际的项目中,经过会遇到各种网络模型,需要我们快速去了解网络结构。如果单纯的去看模型文件,脑海中很难直观的浮现网络的架构。 这时,就可以使用netron可视化工具,可以清晰的看到每一层的输入输出,网络总体的架构,而且支持各种不同网络框架,简单好用。 2.不同操作系统下的安装使用方式 2.1

江南研习社 12万+

web安全基础

HTTP原理 1、HTTP协议解析 Hyper Text Transfer Protocol(超文本传输协议)是万维网协会(World Wide Web Consortium)和Internet工作小组IETF(Internet Engineering Task Force)合作的结果,(他们)最终发布了一系列的RFC RFC 1945 HTTP/1.0 RFC 2616 HTTP 1.1 HTTP工作流程 首先客户机与服务器需要建立连接。单击某个超级链接,经过TCP三次握手后,HTTP的工作开始。

lixbao的博客 4282

R语言实战:Scheirer–Ray–Hare检验在非正态重复测量数据分析中的应用

本文详细介绍了当重复测量数据不满足正态分布假设时,如何利用R语言中的Scheirer–Ray–Hare检验进行数据分析。该检验作为非参数方法,无需数据服从正态分布或方差齐性,适用于分析组间差异、时间效应及其交互作用。文章通过实战案例,从环境搭建、数据准备、检验执行到结果解读与可视化,提供了完整的操作指南,帮助研究者有效处理心理学、医学等领域的复杂实验数据。

salt9的博客 780

常见 Web 安全攻防总结

Web 安全地对于 Web 从业人员来说是一个非常重要的课题,所以在这里总结一下 Web 相关的安全攻防知识,希望以后不要再踩雷,也希望对看到这篇文章的同学有所帮助。今天这边文章主要的内容就是分析几种常见的攻击的类型以及防御的方法。也许你对所有的安全问题都有一定的认识,但最主要的还是在编码设计的过程中时刻绷紧安全那根弦,需要反复推敲每个实现细节,安全无小事。本文代码 Demo 都是基于 Node.js 讲解,其他服务端语言同样可以参考。

2301_76694151的博客 1508

使用MLP解决OCR问题(OpenCV)(下)

分类模型:        分类模型涉及的一个比较关键的问题就是输出的10维向量是如何与具体的类别挂钩的。实际上:10维向量的每一位都代表一类,在对于训练集的表达中,如果输入数据是0,则10维向量的第一位赋值为1,其余均为0。即0对应[1,0,0,0,0,0,0,0,0,0]。MLP模型训练完成后,就需要对用户输入的数据所属类别进行判定。这时得到的输出数据基本不可能是正好的所属类为1,其他位置为0

qq_18515405的专栏 1906

传感器应用案例:压力传感器在工业自动化中的应用_(13).压力传感器的数据采集与处理

数据采集系统(Data Acquisition System, DAS)是连接传感器和控制系统的重要桥梁。它包括硬件(如数据采集卡、信号调理器)和软件(如数据采集软件、数据处理算法)两部分。信号调理:将传感器输出的模拟信号转换为适合AD转换的信号。AD转换:将模拟信号转换为数字信号。数据传输:将数字信号传输到控制系统或上位机。存储:将采集的数据存储在本地或远程数据库中。实时性:保证数据的实时性和准确性。压力传感器的数据采集与处理是工业自动化中不可或缺的一部分。

2401_87715305的博客 1620

Web安全

CSRF 英文全称是 Cross-site request forgery,又称为“跨站请求伪造”。顾名思义,CSRF 攻击就是黑客引诱用户打开黑客的网站,利用用户的登陆状态发起跨站请求。降维解释:攻击者诱导受害者进入第三方网站,在第三方网站中,向被攻击网站发送跨站请求。利用受害者在被攻击网站已经获取的注册凭证,绕过后台的用户验证, 达到冒充用户对被攻击的网站执行某项操作的目的。反弹技术就是利用反弹服务器实现攻击的技术。

weixin_72525373的博客 1049

OpenCV-Python实战(10)——详解 OpenCV 轮廓检测

在计算机视觉领域,轮廓通常指图像中对象边界的一系列点。因此,轮廓通常描述了对象边界的关键信息,包含了有关对象形状的主要信息,该信息可用于形状分析与对象检测和识别。在本文中,将首次通过简单示例了解轮廓的基本概念,然后通过实际示例来了解如何检测和压缩轮廓,最后利用介绍如何利用图像矩描述检测到的轮廓属性。

盼小辉丶的博客 3万+

Web安全知识体系总结

一、了解web安全 我们平时开发一般注重功能技术,而忽略了安全架构,对于怎么开发出一个安全的web项目,我认为有必要做一个学习与总结。 对于web安全,主要分为两大特性: ①私密性:数据不会被非法获取和利用,一般经过授权才可以访问。    ②可靠性:数据不会丢失、损坏、篡改。   对于安全问题,一般关注三个层面:①代码层面    ②架构层面   ③运维层面   二、常见的安全问题:...

zp的博客 1万+

AgentScope深入分析-ReActAgent

ReActAgent 是 AgentScope 框架中最核心的智能体实现,它完美诠释了"推理-行动"(Reasoning-Acting)循环的精髓。本文将深入分析 ReActAgent 的类继承关系、核心执行流程,以及状态管理、钩子机制、实时介入等关键技术点。通过阅读本文,你会理解智能体如何与模型交互、如何执行工具、如何处理中断,以及这些机制背后的设计考量。模块化:通过组合不同的组件(模型、格式化器、工具集、记忆)来构建智能体透明性:所有关键流程都对开发者可见,可以精确控制可扩展性。

842

数字逻辑Fundamentals of Digital Logic with Verilog Design | 3rd Edition Solutins Chapter 6(step by step)

第六章6-1~6-42习题详解,缺少6-39和6-40

weixin_62651190的博客 1465

web安全测试方法有哪些?

渗透测试也是常用的安全测试方法。是使用自动化工具或者人工的方法模拟黑客的输入,对应用系统进行攻击性测试,从中找出运行时刻所存在的安全漏洞。 这种测试的特点就是真实有效,一般找出来的问题都是正确的,也是较为严重的。但渗透测试一个致命的缺点是模拟的测试数据只能到达有限的测试点,覆盖率很低。 静态的代码安全测试 主要通过对源代码进行安全扫描,根据程序中数据流、控制流、语义等信息与其特有软件安全规则库进行匹对,从中找出代码中潜在的安全漏洞。 静态的源代码安全测试是非常有用的方法,它可以在编码阶段找出所有

ysxjy2020的博客 1755

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

开发中的安全问题

安全场景核心防护手段代码关键操作XSS输入过滤、输出编码、CSPJsoup过滤、Vue自动转义、CSP头SQL注入参数化查询、ORM框架、输入验证CSRFToken验证、SameSite CookieSpring Security CSRF、SameSite配置HTTPS配置申请证书、服务器加密配置Nginx SSL配置、HTTP跳转HTTPS敏感数据加密密码哈希+盐、AES对称加密BCrypt加密、AES加解密。

TOUCH的博客 1014

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

web安全

Shell注入 我们先来看一段perl的代码: 1 2 3 4 5 6 7 8 9 10 11 use CGI qw(:standard); $name = param('name'); $nslookup = "/path/to/nslookup"; print header; if (open($fh, "$

544

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

PHP常见安全问题及解决方法

1、SQL注入 问题说明: SQL注入是对您网站最大的威胁之一,如果您的数据库受到别人的 SQL 注入的攻击的话,别人可以转出你的数据库,也许还会产生更严重的后果。 解决方法: 主流的解决方法有两种。转义用户输入的数据或者使用封装好的语句。转义的方法是封装好一个函数,用来对用户提交的数据进行过滤dnf私服,去掉有害的标签。但是,我不太推荐使用这个方法,因为比较容易忘记在每个地方都做此处理。 示例代...

qq_18847065的博客 280

威胁web应用安全的错误

一般绝大部分的web应用攻击都是特定目标的大范围漏洞扫描,只有少数攻击确实是为入侵特定目标而进行的针对性尝试。这两种攻击都非常频繁,难以准确检测出来,许多网站的web应用防火墙都无法保证能够有效运行。有一些被忽略的安全错误可能会威胁到web应用的安全。 存在的SQL注入漏洞 SQL注入依然活跃着,安全监控公司的研究显示,SQL注入攻击长期以来一直都是最普遍的web攻击方式,占该公司客户报告事件...

JPshangdexiaofeixia的博客 276

【概念】WEB应用自动化安全测试

参考文章: 安全牛:https://www.aqniu.com/learn/46910.html ISC2020互联网安全峰会议题:利用IAST推动应用安全测试自动化(IAST是DevSecOps实现自动化安全测试的最佳工具之一 ) 一:Web应用安全测试技术 为了发现软件的漏洞和缺陷,确保Web应用程序在交付之前和交付之后都是安全的,就需要利用Web应用安全测试技术识别Web应用程序中架构的薄弱点和漏洞,并且必须赶在网络黑客找到和利用它们之前。 Web应用安全测试技术经过多年的发展,目前业界常用

Websec 2527

web 安全问题

web 前端安全问题 跨站脚本攻击(XSS攻击) 原理:跨站脚本攻击:指的是恶意攻击者往Web页面里插入恶意 html 代码,当用户浏览该页之时,嵌入其中Web里面的 html 代码会被执行,从而达到恶意用户的特殊目的。 危害:盗取各类用户帐号,如机器登录帐号、用户网银帐号、各类管理员帐号;控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力;非法转账;控制受害者机器向其它网站发起攻击等。 防范:XSS 攻击其核心都是利用了脚本注入,因此我们解决办法其实很简单,不信赖用户输入,对特殊字符

Luzhangfeng的博客 233

常见Web安全问题及防御策略,想转行当程序员的必看

1)要在各个不同层面,不同方面实施安全方案,避免出现疏漏,不同安全方案之间需要相互配合,构成一个整体;2)要在正确的地方做正确的事情,即:在解决根本问题的地方实施针对性的安全方案。这一原则适用于各种由于“注入”而引发安全问题的场景。实际上,缓冲区溢出,也可以认为是程序违背了这一原则的后果——程序在栈或者堆中,将用户数据当做代码执行,混淆了代码与数据的边界,从而导致安全问题的发生。微软使用的ASLR技术,在较新版本的Linux内核中也支持。

weixin_51725318的博客 277

web安全-----ZAP扫描漏洞问题以及解决

此版块持续更新中。。。。 目前发现的问题大部分都是后端C代码的问题,以及少部分前端代码的问题。

博客之家 1918
上一篇: H5开发:详说 Cookie, LocalStorage 与 SessionStorage
下一篇: zepto:源码分析
Generon
博客等级 码龄11年 135粉丝 135原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值