初涉web安全

最近看了些web安全方面的文章,略有心得,写这篇文章来整理下思路,如有错误,恳请斧正

SQL注入

原理:在web表单中输入恶意sql语句

防御:对用户输入的进行处理,永远不要相信前端js对表单的验证,js是可以禁用的

主要方法:

使用框架自带方法(此类方法较为简便,因为大部分框架都为你做好了处理) 比如常用的tp框架可以使用数组查询条件,字符串查询预处理机制

使用PDO或mysqli预处理(此类方法较为繁琐,但是有些框架没有做安全处理或做的不好) 以下是PDO的示例(mysqli本人也没试过,只是听说可以(逃~)

$dbh = new PDO("mysql:dbname=test; host=127.0.0.1;charset=utf8", "user", "pass");//连接数据库,并设置本地PDO驱动编码格式

$dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); //禁用模拟预处理(非常重要)

$dbh->exec("set names 'utf8'"); //设定mysql服务器编码格式

$sql="select * from test where name = ? and password = ?";//设定预处理语句

$stmt = $dbh->prepare($sql);//执行预处理

$stmt->bindParam(1, $id,\PDO::PARAM_INT);//绑定参数

$exeres = $stmt->execute(); //执行

$result = $stmt->fetchAll(); //得到结果集

echo json_encode($result);//输出

$dbh = null;//取消连接

XSS攻击

原理:在web表单中输入恶意js脚本

防御:对用户输入的进行处理,过滤特殊字符

主要方法:

使用框架自带方法 比如说tp框架:I('get.xxx')

使用PHP过滤函数 htmlspecialchars()转化html字符 htmlentities() 转化html字符 (5.6之后无区别) intval()获取变量的整数值 strip_tags 从字符串中去除 HTML 和 PHP 标记

添加收藏

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏c#开发者

Asp.net webform scaffolding结合Generic Unit of Work & (Extensible) Repositories Framework代码生成向导

Asp.net webform scaffolding结合Generic Unit of Work & (Extensible) Repositories Fr...

2915
来自专栏流柯技术学院

TestNG官方文档中文版(4)-运行TestNG

4 - 运行TestNG TestNG可以以不同的方式调用:     * Command line     * ant     * Eclips...

1232
来自专栏Spark学习技巧

基于zookeeper leader选举方式一

一,基本介绍 Curator Framework是一个针对zookeeper做的搞层次的API,极大地简化了zookeeper的使用。它基于zookeeper构...

2275
来自专栏阿杜的世界

Java并发编程:概念和原理关键概念Java并发的底层机制参考资料

Java并发编程在实际的工作中应用广泛,有时候需要通过多线程去异步做一些事情,有时候需要通过多线程提升一个任务执行的效率。最近又在回顾一些Java编程的基本概念...

1011
来自专栏开发与安全

linux网络编程之posix 线程(四):posix 条件变量与互斥锁 示例生产者--消费者问题

一、posix 条件变量 一种线程间同步的情形:线程A需要等某个条件成立才能继续往下执行,现在这个条件不成立,线程A就阻塞等待,而线程B在执行过程中使这个条件成...

2130
来自专栏Youngxj

[教程]黑客级别的批量处理文件

2143
来自专栏服务端技术杂谈

从org.springframework.dao.DuplicateKeyException说起

通常在dao层将所有异常转嫁到Spring的RuntimeException体系(org.springframework.dao.DataAccessExcep...

2434
来自专栏凉城

[教程]黑客级别的批量处理文件

2265
来自专栏漫漫全栈路

JSP Cheat Sheet - JavaWeb基础学习速查表

JavaWeb学习速查表 整理JavaWeb学习中遇到的问题以及笔记,按分类编排 JSP基本语法 指令标识 - 脚本标识 - JSP注释 - 动作标识 JSP内...

3955
来自专栏chenssy

【死磕Sharding-jdbc】---基于 SSM 集成sharding-jdbc2.0.3

本篇文章讲解如何在ssm(spring、springmvc、mybatis)结构的程序上集成sharding-jdbc(版本为2.0.3)进行分库分表; 假设分...

871

扫码关注云+社区

领取腾讯云代金券