回复内容过滤 XSS 后内容为空时,使用更加友好的处理方式

分享 JochenLaravel ⋅ 于 3个月前 ⋅ 最后回复由 Elinger 2个月前 ⋅ 349 阅读

为了对回复内容进行 XSS 过滤,教程中是通过在模型监控器 ReplyObserver 中监控 created 事件来实现,但是这就会造成一个问题:当过滤后的内容为空时,依旧将空内容的回复插入到数据库中,其实这是有问题的。
file

我的想法是在控制器里进行 XSS 过滤,并对过滤结果进行判断,代码如下:

public function store(ReplyRequest $request, Reply $reply)
{
        // XSS 过滤
        $content = clean($request->get('content'));
        if (empty($content)) {
            return redirect()->back()->with('error', '回复内容错误!');
        }

        $reply->content = $content;
        $reply->user_id = Auth::id();
        $reply->topic_id = $request->get('topic_id');
        $reply->save();

        return redirect($reply->topic->link())->with('success', '创建成功!');
}

本文章首发在 Laravel China 社区
回复数量: 1
  • Elinger 2
    2个月前

    哥,别人攻击你,你还给他一个友好的提示?

暂无评论~~
您需要登陆以后才能留下评论!

Composer 中国全量镜像

Top 100 扩展包

Lumen 中文文档

Laravel 速查表

Laravel 中文文档

Laravel 项目开发规范

Laravel 开发环境部署

社区文档撰写指南

TDD 构建 Laravel 论坛笔记

PHP PSR 标准规范

PHP 设计模式全集

Dingo API 中文文档