分页: 1 / 1

Admin log里奇怪的显示:出现了Mark、User等多余字样

发表于 : 2019年2月8日 15:11
baoang
Admin log截图
Admin log截图
Image 172.png (9.33 KiB) 查看 823 次
正常情况下是不会有这状况的,我在Nginx及Apache2.4下均安装过。

但这两天把原Apache上的phpBB3.2.5迁至Nginx1.14.2上来(再在Apache之前还是用的Nginx1.14版),配的是PHP 7.2.14(原先7.3之前发帖出现过问题,还是回归7.2系列了)出现了奇怪的现象,如截图显示:它的表格栏目字出现在了单元格里,而从前单元格里只有内容而元表格栏目字样的。

除此外,还出现了想清除Admin log时,点选全选即Mark All的多选框没反应的现象,在Firefox、Chrome上均如此。

目前,转归Apache后问题消失,而在Nginx上虽有这种奇怪现象,但论坛功能却又正常无误。

因此,判断上是js载入相关?

Re: Admin log里奇怪的显示:出现了Mark、User等多余字样

发表于 : 2019年2月8日 15:56
davidyin
看上去是把那些标记为不显示的内容给显示出来了。
hidden.jpg
hidden.jpg (23.1 KiB) 查看 821 次

Re: Admin log里奇怪的显示:出现了Mark、User等多余字样

发表于 : 2019年2月8日 15:58
davidyin
最好把网址发出来看看。用浏览器的开发工具看看,是否有什么内容没有载入。

Re: Admin log里奇怪的显示:出现了Mark、User等多余字样

发表于 : 2019年2月8日 18:57
baoang
davidyin 写了:
2019年2月8日 15:58
最好把网址发出来看看。用浏览器的开发工具看看,是否有什么内容没有载入。
管理员真细心!

我用F12也查到这个问题了(就是这个dfn style="display none;",正常情形下是有display:none的,出现额外字样的就没有这个display: none),以为是跟js代码有关,也许是没载入。试了多次未成,又迁回原先的服务器。

刚才想到一个问题,搜索会儿,特来报告。

LAMP和LEMP我都是自己摸索着编译的,PHP的模块中有个libxml2,我在编译时用了个参数CFLAGS='-Os' ,想着能把可执行文件给整小那么一些(在PHP上试过,效果相当好,从40、 50MB直接至少一半)。

代码: 全选

curl ftp://xmlsoft.org/libxml2/libxml2-2.9.9.tar.gz | tar xz
cd libxml2-2.9.9
CFLAGS='-Os' ./configure --with-zlib --without-python
make && make install
编译都是成功的,但是偶尔查了下编译日志,发现有一些警告信息(以下为一部分)

代码: 全选

timsort.h: In function ‘libxml_domnode_tim_sort’:
timsort.h:487:21: warning: inlining failed in call to ‘PUSH_NEXT’: call is unlikely and code size would grow [-Winline]
 static __inline int PUSH_NEXT(SORT_TYPE *dst,
                     ^~~~~~~~~
timsort.h:554:8: note: called from here
   if (!PUSH_NEXT(dst, size, store, minrun, run_stack, &stack_curr, &curr)) {
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
timsort.h:487:21: warning: inlining failed in call to ‘PUSH_NEXT’: call is unlikely and code size would grow [-Winline]
又在网上搜索半天,猜想可能跟这个编译参数有关(https://stackoverflow.com/questions/117 ... or-os-o-o1),这部分看不明白,我自己想,xml也许跟表格里一行一行的内容渲染有关吧。

或许我再重新编译一下PHP,可能 有不同结果。我再试试。

Re: Admin log里奇怪的显示:出现了Mark、User等多余字样

发表于 : 2019年2月9日 00:23
baoang
重新编译了两次,这次大体弄明白了。

结论是,并非编译参数的问题,还换了编译器,把GCC降级到CentOS7的4.8.5处理。也就是说,除了去掉了CFLAGS那个压缩参数,还换了感觉更稳定的GCC工具,但仍然出现这样的问题。

最后,实在觉得可能是Nginx配置文件有问题,再查下去,想到了之前给Nginx配置上增加了一 系列“头文件安全参数”,如

代码: 全选

#add_header                     Strict-Transport-Security "max-age=31536000;" always;
    #add_header                     X-XSS-Protection          "1; mode=block";
    #add_header                     X-Content-Type-Options    "nosniff"           always;
等。
于是一个一个用排除法测试,发现
add_header Content-Security-Policy "default-src 'self';";
做了如此设置的头文件信息导致了以上的现象。

根据这里(https://content-security-policy.com/)对这个头文件设置的说明,我想应当是CSS样式表的载入问题,于是又试了下,如果上述设置(假设仍然要保证所谓的“安全”不放弃头文件信息的加入的话)用

代码: 全选

add_header Content-Security-Policy   "script-src 'self'; connect-src 'self'; img-src 'self';";
这样的设置就可以了。

不明白的是,phpBB3的样式表似乎应当是自己自带的,而不是外引的,为什么去掉了style-src 'self'就行了呢?

参考(附带测试,大家均可尝试一下)
https://www.keycdn.com/blog/http-security-headers
https://securityheaders.com/
https://observatory.mozilla.org/

Re: Admin log里奇怪的显示:出现了Mark、User等多余字样

发表于 : 2019年2月9日 06:12
davidyin
看了你的分析,明白了是安全配置问题。
Content-Security-Policy "script-src 'self';
script-src 换成 default-src 试试看。
或者换上 default-src 'self' 'unsafe-inline'

vi
https://developer.mozilla.org/en-US/doc ... script-src

Re: Admin log里奇怪的显示:出现了Mark、User等多余字样

发表于 : 2019年2月9日 14:30
baoang
试过,已经完成,感谢站长指点。

看来这些新的规范也是很要人命的。