本文目录一览:
- 1、php网站怎样防御xss攻击?
- 2、thinkphp怎么做才是安全的sql防注入
- 3、thinkphp仿一个普通企业站难吗?不知道thinkphp这种框架仿站难不?还是要先开发一个cms出来后在仿
- 4、thinkphp为什么过滤style标签
- 5、thinkphp 的上传代码中。如何让上传的文件的保存名为它自己的名字,而不是时间戳生成的名字
php网站怎样防御xss攻击?
过滤用户输入的script/script以及其他的HTML标签等。。
thinkphp怎么做才是安全的sql防注入
注入的产生一般都是对用户输入的参数未做任何处理直接对条件和语句进行拼装.
代码举例:
//不安全的写法举例1
$_GET['id']=8;//希望得到的是正整数
$data=M('Member')-where('id='.$_GET['id'])-find();
$_GET['id']='8 or status=1';//隐患:构造畸形查询条件进行注入;
//安全的替换写法
$data=M('Member')-where(array('id'=$_GET['id']))-find();//使用数组方式将自动使用框架自带的字段类型检测防止注入
$data=M('Member')-where(array('id'=(int)$_GET['id']))-find();//类型约束
$data=M('Member')-where('id='.intval($_GET['id']))-find();//类型转换
$data=M('Member')-where(array('id'=I('get.id','','intval')))-find();//本人习惯写法
$data=M('Member')-where(array('id'=':id'))-bind(':id',I('get.id'))-select();//PDO驱动可以使用参数绑定
$data=M('Member')-where("id=%d",array($_GET['id']))-find();//预处理机制
//不安全的写法举例2
$_GET['id']=8;//希望得到的是正整数
$data=M()-query('SELECT * FROM `member` WHERE id='.$_GET['id']);//执行的SQL语句
$_GET['id']='8 UNION SELECT * FROM `member`';;//隐患:构造畸形语句进行注入;
2.防止注入的总的原则是根据具体业务逻辑,对来源于用户的值的范围,类型和正负等进行限制和判断,同时尽量使用THINKPHP自带的SQL函数和写法.
3.在THINKPHP3.2版本中的操作步骤是:
一:在项目配置文件中添加配置: 'DEFAULT_FILTER' = 'htmlspecialchars', //默认过滤函数
二: 使用框架带的I *** 获取来自用户提交的数据;
例子:M('Member')-save(array('content'=I('post.content')));这样添加的content内容是经过htmlspecialchars处理过的.
4.为COOKIE添加httponly配置
5.最新版本的thinkphp已经支持此参数。
6.HTML5值得观注的新特性:
9.富文本过滤
富文本过滤是,XSS攻击最令人头疼的话题,不仅是小网站,就连BAT这样的巨头也是三天两头的被其困扰.
thinkphp仿一个普通企业站难吗?不知道thinkphp这种框架仿站难不?还是要先开发一个cms出来后在仿
一般企业站很简单,程序上的要花的时候很少,主要是页面UI上花的时候还多一些.
如果用jquery easyui这类框架来做的话.一个小企业站的后台一天就可以完成
thinkphp为什么过滤style标签
xss过滤主要是应对传值的时候,防止恶意攻击者往Web页面里插入恶意html代码。
这种编辑器入库的根本不需要用xss过滤啊,可以用mysql_escape_string过滤一下入库,然后展示的时候用htmlspecialchars原型输出就可以了。
thinkphp 的上传代码中。如何让上传的文件的保存名为它自己的名字,而不是时间戳生成的名字
可以设置啊,saveRule 上传文件命名规则 留空则使用原来文件名保存;
网上随便一搜索,都是这个,