dede(织梦)数据提交防csrf请求校验

本文详细介绍了在dede(织梦)系统中如何实现数据提交的CSRF(跨站请求伪造)防护机制,包括环境背景、需求分析以及具体的代码实现步骤,旨在提升网站的安全性。
前言
很多人喜欢直接在前端写ajax向后台指定地址提交数据,这样的做法过于草率,当时可能比较省事,后面付出的代价必定是惨痛的。笔者曾“有幸”经历过几次这样的跨域攻击,服务器遇到来自四面八方的海量请求,瞬间崩溃,日志显示请求来自不同国家和城市,这样一来常用的IP防火墙策略收效甚微。最终发现,服务器诸多接口安全性过低,省去了诸多校验,看似化繁为简,实则漏洞百出,攻击者在网上收集“肉鸡”,同时向指定服务器发送请求,致使服务器瘫痪。本文通过常用的dede(织梦)二次开发,
展示安全程度较高的前台数据提交策略,抛砖引玉,望读者日常开发过程勿避重就轻,忽视数据与信息安全。
    环境与需求

1. Centos 6.8  
2. LANMP
3. DEDEV5.7
4 .需求:使用dede创建自定义表单,前台向后台自定义表单提交数据。

       代码实现
切换到dede根目录 创建自定义标签解析文件 /include/taglib/csrftoken.lib.php

<?php
require_once(dirname(__FILE__)."/../helpers/cache.helper.php");
if(!defined('DEDEINC')){
    exit("Request Error!");
}
/**
 * 自定义csrf_token生成标签
 *
 * @version        $Id: csrftoken.lib.php 1 10:11 2018年1月9日
 * @package        DedeCMS.Taglib
 * @copyright      Copyright (c) 2007 - 2010, DesDev, Inc.
 * @author         underclounds <underclounds@gmail.com>
 * @license        http://help.dedecms.com/usersguide/license.html
 * @link           http://www.dedecms.com
 */

/*>>dede>>
<name>csrf签名标签</name>
<type>全局标记</type>
<for>V55,V56,V57</for>
<description>生成指定长度的随机加密字符串,每十分钟过期一次,用于前后台数据交互的验证 防止csrf攻击</description>
<demo>
{dede:csrftoken name='token名 默认csrf' len='长度 默认12位' exp='过期时间 默认600秒' /}
</demo>
<attributes>
</attributes>
>>dede>>*/

function lib_csrftoken(&$ctag,&$refObj)
{
    global $dsql,$envs;

    //读取sessionId
    @session_start();
    $sessionId = session_id();

    
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

underclound

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值