回复内容过滤 XSS 后内容为空时,使用更加友好的处理方式
为了对回复内容进行 XSS 过滤,教程中是通过在模型监控器 ReplyObserver 中监控 created
事件来实现,但是这就会造成一个问题:当过滤后的内容为空时,依旧将空内容的回复插入到数据库中,其实这是有问题的。
我的想法是在控制器里进行 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', '创建成功!');
}
推荐文章: