在http请求报文中载入攻击代码,就能发起对web应用的攻击。通过url查询字段或者表单、http首部、cookie等途径吧攻击代码传入,若这时web应用存在安全漏洞,那内部信息就会遭到窃取!

对web的攻击模式有两种:
  1. 主动攻击(主动攻击server)
  2. 被动攻击(上传木马程序,用户訪问时触发http陷阱)


实施的安全策略主要分为两步:
  1. client验证
  2. 服务端验证(输入值验证。输出值转义)

两种基本的攻击方式
1.SQL注入攻击(php防止方法是使用mysqli_real_escape_string或者addslashes进行输入数据的转义)
2.XSS攻击(运行js代码获取用户的cookie等信息。进行验证。使用strip_tags和htmlspecialchars或者htmlentities)


sql攻击破解

<?

php

 $clean = array();

$mysql = array();



$clean['last_name'] = "O'Reilly";

$mysql['last_name'] = mysql_real_escape_string($clean['last_name']);



$sql = "INSERT

      INTO   user (last_name)

      VALUES ('{$mysql['last_name']}')";

 ?>


mysqli_real_escape_string

(PHP 5)

mysqli::real_escape_string -- mysqli_real_escape_string — Escapes
special characters in a string for use in an SQL statement, taking into account the current charset of the connection

尽量使用为你的数据库设计的转义函数。

假设没有,使用函数addslashes()是终于的比較好的方法。

string addslashes ( string $str )

返回字符串。该字符串为了数据库查询语句等的须要在某些字符前加上了反斜线。

这些字符是单引號(')、双引號(")、反斜线(\)与
   NUL( NULL 字符)。



htmlspecialchars仅仅是将下列的特殊字符转换成实体。htmlentities是将全部的有实体的html标签转换成相应的实体
  • '&' (ampersand) becomes '&amp;'
  • '"' (double quote) becomes '&quot;' when ENT_NOQUOTES is not set.
  • "'" (single quote) becomes ''' (or &apos;) only when ENT_QUOTES is
    set.
  • '<' (less than) becomes '&lt;'
  • '>' (greater than) becomes '&gt;'

防止xss攻击

//这是一个有xss攻击的php代码xss.php
<?

php

if (isset($_POST['name'])){
//     $str = trim($_POST['name']);  //清理空格
//     $str = strip_tags($str);   //去除html标签
//     $str = htmlspecialchars($str);   //将字符串内容转化成html实体
//     $str = addslashes($str);
//     echo $str;
echo $_POST['name'];
}
setcookie("aaa",'bbb');
?>
<form method="post" action="">
<input name="name" type="text" width="200">
<input type="submit" value="提交" >
</form>


当我訪问该页面,而且输入框中输入<script>alert(document.cookie);</script>。以下是原始的页面

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdGQ5MDExMDV0ZA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

点击提交之后

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdGQ5MDExMDV0ZA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

点击确定button

注意head内部已经有我们提交的js代码。

假设我们取消代码中的红色的凝视部分。再次运行

web攻击方式和防御方法的更多相关文章

  1. DDoS攻击、CC攻击的攻击方式和防御方法

    DDoS攻击.CC攻击的攻击方式和防御方法 - sochishun - 博客园https://www.cnblogs.com/sochishun/p/7081739.html cc攻击_百度百科htt ...

  2. 几种常见web攻击手段及其防御方式

    XSS(跨站脚本攻击) CSRF(跨站请求伪造) SQL注入 DDOS web安全系列目录 总结几种常见web攻击手段极其防御方式 总结几种常见的安全算法 XSS 概念 全称是跨站脚本攻击(Cross ...

  3. 总结几种常见web攻击手段及其防御方式

    本文简单介绍几种常见的攻击手段及其防御方式 XSS(跨站脚本攻击) CSRF(跨站请求伪造) SQL注入 DDOS web安全系列目录 总结几种常见web攻击手段极其防御方式 总结几种常见的安全算法 ...

  4. [转帖][思路/技术]Mimikatz的多种攻击方式以及防御方式

    [思路/技术]Mimikatz的多种攻击方式以及防御方式 https://bbs.ichunqiu.com/thread-53954-1-1.html 之前学习过 抄密码 没想到还有这么多功能.   ...

  5. 第四十五个知识点:描述一些对抗RSA侧信道攻击的基础防御方法

    第四十五个知识点:描述一些对抗RSA侧信道攻击的基础防御方法 原文地址:http://bristolcrypto.blogspot.com/2015/08/52-things-number-45-de ...

  6. 【转】浅谈常用的几种web攻击方式

    浅谈常用的几种web攻击方式 一.Dos攻击(Denial of Service attack) 是一种针对服务器的能够让服务器呈现静止状态的攻击方式.有时候也加服务停止攻击或拒绝服务攻击.其原理就是 ...

  7. Web前端攻击方式及防御措施

    一.XSS [Cross Site Script]跨站脚本攻击 恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户 ...

  8. 简单了解:Web前端攻击方式及防御措施

    一.XSS [Cross Site Script]跨站脚本攻击  恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用 ...

  9. 简单总结几种常见web攻击手段及其防御方式

    web攻击手段有几种,本文简单介绍几种常见的攻击手段及其防御方式 XSS(跨站脚本攻击) CSRF(跨站请求伪造) SQL注入 DDOS XSS 概念 全称是跨站脚本攻击(Cross Site Scr ...

随机推荐

  1. ListView.MultiChoiceModeListener

    参考:http://www.cnblogs.com/a284628487/p/3460400.html和http://blog.csdn.net/mayingcai1987/article/detai ...

  2. ubuntu中在线升级python

    sudo add-apt-repository ppa:fkrull/deadsnakes-python2.7 sudo apt-get update sudo apt-get upgrade 笔记

  3. 通过SecureCRT和PuTTY连接臻云CentOS版云主机

    原文地址:http://jingyan.baidu.com/article/fa4125acb6648128ac7092dc.html 如何通过SecureCRT和PuTTY工具远程连接臻云CentO ...

  4. 2014年百度之星程序设计大赛 资格赛第一题 (longlong)

    解题思路: 只要看(A-V)*K 这个公式的更新值是否大于等于A ,大于的话继续循环,否则报错 注意一点,数据会爆int WA代码: #include<stdio.h> int main( ...

  5. 关于怎么C#控制台窗口中怎么创建连接查询数据库操作

    首先需要新建一张表,为了测试随建了一张学生表 新建号一张表之后就可以对数据库进行操作了 列举了常用的增删改查 操作 static void Main(string[] args)        { s ...

  6. C#反射 入门学习 02

    获取Type类型的构造函数 前言                  有了前面的 C#反射 入门学习 01的知识,学习这篇估计是搓搓有余,它教会了我们获取方法的相关信息的两种形式与 使用反射调用方法,  ...

  7. Python字符串原理剖析------万恶的+号

    字符串原理剖析pyc文件,执行python代码时,如果导入了其他的.py文件,那么执行过程中会自动生成一个与其同名的.pyc文件,该文件就是python解释器变异之后产生的字节码 PS:代码经过编译可 ...

  8. JVM-- 先行发生原则

    本文中需要的基础知识:指令重排 线程中两个非常重要的问题就是:原子性与可见性. 而下面的先行发生原则就是用来解决可见性问题的. 先行发生原则--是判断是否存在数据竞争.线程是否安全的主要依据. 先行发 ...

  9. Qt同步线程(比较清楚,而且QMutex QMutexLocker QReadWriteLock QSemaphore QWaitCondition 每个都有例子)

    Qt同步线程 我们知道,多线程有的时候是很有用的,但是在访问一些公共的资源或者数据时,需要进行同步,否则会使数据遭到破坏或者获取的值不正确.Qt提供了一些类来实现线程的同步,如QMutex,QMute ...

  10. WPF4字体改善

    原文 WPF4字体改善 WPF4对字体渲染做了很大的改善,增加了TextOptions属性,该属性可以设置TextFormattingMode,TextRenderingMode,TextHintin ...