相关疑难解决方法(0)

PHP的"安全"降价处理器?

是否有适合在公共评论中使用的降价的PHP实现?

基本上它应该只允许markdown语法的一个子集(粗体,斜体,链接,块引用,代码块和列表),并删除所有内联HTML(或可能转义它?)

我想一个选择是使用普通的降价解析器,并通过HTML杀菌器运行输出,但是有更好的方法吗?

我们在网站的其余部分使用PHP markdown Extra,因此我们必须使用辅助解析器(非"Extra"版本,因为脚本支持之类的东西是不必要的)..它似乎也更好解析在*bold*文本和拥有一切逃到&lt;a href="etc"&gt;,不是生成<b>bold</b>的文本,并试图剥夺我们不想位..

此外,在相关的说明中,我们使用WMD控件作为"主"站点,但是对于评论,还有哪些其他选项?WMD的javascript预览很好,但它需要与PHP降价处理器相同的"中性"(它不能显示图像等等,否则有人会提交并且他们的工作降价会"破坏")

目前我的计划是使用PHP-markdown - > HTML santiser方法,并编辑WMD以从中删除图像/标题语法showdown.js- 但似乎这已经无数次完成了..

基本上:

  • PHP中是否存在"安全"降价实现?
  • 是否有HTML/javascript markdown编辑器可以轻松禁用相同的选项?

更新:我最终只是markdown()通过HTML Purifier运行输出.

这样Markdown呈现与输出消毒是分开的,输出消毒更简单(两个大多数未经修改的代码库)更安全(您不是一次尝试渲染和消毒),而且更灵活(您可以进行多次消毒)等级,比如说可信内容的配置更宽松,公众评论的版本更严格)

php security markdown user-input

36
推荐指数
1
解决办法
5250
查看次数

在没有<br>标签的情况下在textarea中重新填充nl2br保存的内容?

当用户从textarea中保存文本时:

bfajsdb fkjasdfasjkdfasdfasdf asdf asdf sdf

asdfasdfasdfasdf asd asdf asdf 

sdfasdfasdf
Run Code Online (Sandbox Code Playgroud)

在texignrea中使用codeignter中的nl2br_except_pre函数将其保存在数据库中,如:

bfajsdb fkjasdfasjkdfasdfasdf asdf asdf sdf
<br>
asdfasdfasdfasdf asd asdf asdf 
<br>
sdfasdfasdf
Run Code Online (Sandbox Code Playgroud)

在div或p标签中输出很好.或者在html输出中.

但是,当再次在textarea内部进行重新填充时,它会显示
标签,这些标签很丑陋并且会使用户感到困惑.

如何在从数据库重新填充保存的值之前清理输出,以便它在textarea中查找如下:

bfajsdb fkjasdfasjkdfasdfasdf asdf asdf sdf

asdfasdfasdfasdf asd asdf asdf 

sdfasdfasdf
Run Code Online (Sandbox Code Playgroud)

而不是这样的:

bfajsdb fkjasdfasjkdfasdfasdf asdf asdf sdf
<br>
asdfasdfasdfasdf asd asdf asdf 
<br>
sdfasdfasdf
Run Code Online (Sandbox Code Playgroud)

php nl2br

3
推荐指数
1
解决办法
3423
查看次数

标签 统计

php ×2

markdown ×1

nl2br ×1

security ×1

user-input ×1