我在一个使用Markdown作为语法的Web应用程序上工作,我面临的唯一问题是如何在服务器端验证用户输入,以便它实际上是Markdown而不是一些可以使用注入(inject)的XSS攻击POST请求或通过禁用javascript。我知道StackOverflow会这样做,但他们是如何做到的并允许某些HTML标签(包括容易受到XSS攻击的图像)?任何可以提供帮助的开源包(示例表示赞赏)。因为我听说StackOverflow使用它,所以我会尝试一下Pagedown作为客户端验证器。 最佳答案 您需要投资ca。一到两周的正确编码,并获得一
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。我用过TikiWiki有一段时间,最近尝试了MediaWiki,但对于我的简单需求来说,它们中的任何一个似乎都太复杂了。老实说,我更喜欢markdown而不是wiki语法,因为它简单,因此我问这个问题的原因:我正在寻找一个基于markdown语法的协作文档系统,例如Github的wiki系统。这个项目应该用PHP编写,这样它就可以在共享主机上提供服务(即
我使用Markdown为我的论坛脚本中的用户写帖子提供了一种简单的方法。我正在尝试清理每个用户输入,但Markdown的输入有问题。我需要在数据库中存储Markdown文本,而不是HTML转换版本,因为允许用户编辑他们的帖子。基本上我需要像StackOverflow那样的东西。我读了thisarticle关于Markdown的XSS漏洞。我找到的唯一解决方案是在我的脚本提供的每个输出之前使用HTML_purifier。我认为这会减慢我的脚本,我想输出20个帖子并为每个帖子运行HTML_purifier...所以我试图找到一种解决方案来清除XSS漏洞,即清除输入而不是输出。我无法在输入上
我正在使用此处提供的PHPMarkdown脚本:http://michelf.com/projects/php-markdown/我今天注意到,如果有人发布包含以下文本的消息:>>>>>>>>>>>>>>>>>>HelloWorld...Xdebug将由于超过100个嵌套函数调用而产生fatalerror。然后我意识到,几乎所有markdown语法都可能以这种方式被滥用——在许多情况下是无意中。我通过替换>>>>的实例解决了这个问题与>\>\>\>,但这似乎根本不是一个合适的解决方案。有没有人遇到过这个?有没有更好的PHP脚本来格式化Markdown? 最佳
GoogleCodePrettify工作正常,但是当我使用Markdown内容并显示数据库中的内容时,Prettify无法正常工作(linkofliveresult)。这就是我正在做的:获取内容然后在(我使用PDO)之后存储输出Markdown($_POST['article_content'])但结果是,如果我不使用Markdown,我在代码部分写的部分工作正常,但是当我从textarea获取内容并使用Markdown时,它不起作用。 最佳答案 查看HTML代码。您错过了pre标签中的class="prettyprint"。try
我想开发具有轻微自动化流程或页眉、菜单、导航栏、页脚等的网站,使用markdown技术。例如,navigationbar.md将只包含链接文本和链接地址,我想将这些详细信息(链接和文本没有解析的html格式)单独获取到php中的变量或参数中。*[Dog][0]*[GermanShepherd][1]*[BelgianShepherd][2]*[Malinois][3]*[Groenendael][4]*[Tervuren][5]*[Cat][6]*[Siberian][7]*[Siamese][8][0]:(http://google.com)[1]:(http://google.co
在我的php应用程序中,我有一个文本框,它从用户那里接收Markdown(比如stackoverflow的),然后它显示在网站上。我正在使用Laravel框架并使用parsedown-laravel包裹。我能做到:{!!Markdown::parse('__Hello__Markdown!');!!}有效。{!!Markdown::parse('HelloMarkdown!');!!}它仍然有效。我对此没有意见。现在如果我这样做:{!!Markdown::parse('alert("XSSAttack!!!")Markdown!');!!}它仍然有效!!!如何使用Laravel和这个包
我正在使用Laravel5.4,我正在发送带有以下代码的Markdown邮件:publicfunctionbuild(){return$this->markdown('emails.userWasRegistered')->with('user',$this->user);}Markdown@component('mail::message')#WelcomeThankyouforregistering,youareregisteredasa{{$user->role}}@component('mail::button',['url'=>$url])Login@endcomponent
我正在考虑同时支持Textile和Markdown在当前项目上。我宁愿不强制用户选择一个或另一个。有没有办法自动检测用户正在使用的是哪个?你会怎么做?我想找到/开发JavaScript和PHP解决方案,这样我就可以提供实时预览并在服务器端处理用户输入。 最佳答案 考虑到用户可能只在帖子中使用一个特定的语法元素,因此您必须检查所有内容。正在寻找“h1”。显然,只有当用户恰好使用该元素时才有效。标题之类的东西很容易,但考虑Markdown格式*this*作为thisTextile会将其转换为this反而。因此,您会有歧义的语法结构,这会
项目中遇见一个需求,要求直接在浏览器打开markdown文件进行预览,初次使用遇见一些坎坷,以下记录实现过程,将其封装成了一个组件。1.下载依赖yarnaddreact-markdown//其余样式插件:yarnaddremark-gfmyarnaddrehype-rawyarnaddreact-syntax-highlighteryarnaddgithub-markdown-cssreact-markdown是github上的一款开源的适用于markdown文件的组件。2.引入使用2.1获取markdown文件内容此处使用fetch来获取文件内容,我在项目中直接引入无法被识别,当然大家也可以