分页: 1 / 1
Admin log里奇怪的显示:出现了Mark、User等多余字样
发表于 : 2019年2月8日 15:11
由 baoang
- Admin log截图
- Image 172.png (9.33 KiB) 查看 6540 次
正常情况下是不会有这状况的,我在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 (23.1 KiB) 查看 6538 次
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
试过,已经完成,感谢站长指点。
看来这些新的规范也是很要人命的。