[求助]搭建nodeclub遇到问题若干
发布于 3年前 作者 chendahui007 1388 次浏览
  • 怎么嵌入视频呢?

比如在youtube的一个视频,其提供的嵌入代码是 <iframe width="420" height="315" src="http://www.youtube.com/embed/CjaC8Pq9-V0" frameborder="0" allowfullscreen></iframe> .在预览时是可以观看视频了,但是一提交,那些代码就失效了,变成普通文本了 .这套程序支持嵌入视频吗? 如果可以,该怎么改提供的嵌入代码使其支持?

  • 关于@user . mention user的时候,指向的地址是 http://www.XXX.com:3000/user/hahah (假设这里username为hahah),但是该地址打开无效,是因为我的nginx配置出错吗? 我好像用的是80端口

这里是nginx配置文件: 这里假设域名是xxx.com

server {
        listen 0.0.0.0:80;
        server_name www.xxx.com xxx.com;
        access_log /home/david/xxx.com/logs/access.log;
        error_log /home/david/xxx.com/logs/error.log;
        root /home/david/xxx.com/public_html;

        location / {
                index index.html  index.htm; 
                proxy_pass  http://127.0.0.1:3000;

}

}
  • 关于本地地址.如http://127.0.0.1 (可以这么称呼吗)

然后会指向 http://www.cnodejs.orghttp//127.0.0.1:3000.真的很奇怪,我明明以及已经将config.js有关cnodejs.org的字眼就删除或者注释掉了 ! 这是什么原因呢?

12 回复

问题一:

由于iframe属于高危标签,默认被屏蔽了。如果是你自己搭建的网站,而且认为应该开放使用该标签的话,可以按照以下方法修改:

编辑 libs/util.js文件,在开头的var xss = require('xss');后面,增加以下代码来配置xss模块:

xss.whiteList['iframe'] = ['src', 'width', 'height', 'allowfullscreen', 'frameborder'];

关于xss模块的详细使用方法,参考这里:https://github.com/leizongmin/js-xss

如果想嵌入那个视频网站的视频,而且他们的代码不一,那岂不是要添加很多白名单?

@chendahui007 目前最简单有效的方法就是白名单过滤了。

@chendahui007 上面修改白名单的方法,你也可以直接在config.js中修改,不用修改源码:

// 在config.js中增加一下代码即可,因为xss模块的配置是全局的,在任意代码文件中执行以下修改其效果都一样
var xss = require('xss');
xss.whiteList['iframe'] = ['src', 'width', 'height', 'allowfullscreen', 'frameborder'];

@leizongmin 改了之后,预览还是可以看的,但是提交时提示Forbidden

问题三:已经发了一个pull request,详见 https://github.com/cnodejs/nodeclub/pull/96

@chendahui007 那是因为你重启了nodeclub进程,但是这个页面没有刷新就直接提交? 防csrf攻击模块作用的效果。

@leizongmin 好像添加两条规则就可以支持很多视频了 ,国外好像一般用iframe ,国内用embed

问题二, 请问知道是什么原因吗?

回到顶部