分类信息设置需要花费积分才能查看的,内容页面确实显示隐藏了,不花积分是不能看的,但内容页上面有个删除、修改按钮,点击修改,电话号码等信息全部暴露了。
点击那个修改,则全部暴露无遗
我是通过分类信息模块复制出来的求购栏目,所以仍以分类信息文件来做说明。
修改办法一:
打开template\index_style\default\fenlei\content\show.htm 找到第46、47行,
<span onclick="delinfo({$info.id})"><i class="fa fa-trash-o"></i> 删除</span> <span onclick="editinfo({$info.id})"><i class="fa fa-edit"></i> 修改</span>
这段代码应加上判断代码,如果是管理员或信息发布者则执行显示这段代码,否则不执行显示这段代码。用如下代码替换46、47行这段代码
{if $userdb.uid==$info.uid or $userdb.uid==1} <span onclick="delinfo({$info.id})"><i class="fa fa-trash-o"></i> 删除</span> <span onclick="editinfo({$info.id})"><i class="fa fa-edit"></i> 修改</span> {/if}
这个效果就不截图了。
修改方法二:
或者在删除函数delinfo({$info.id})、编辑函数editinfo({$info.id}),加上判断,是管理员或信息发布者本人,则函数执行为真,否则error,绝对不能让程序调用出修改页面。
其实最严格的方法是在修改页面增加判断,判断规则如上,否则报无权限,这样就可以堵住直接输入修改编辑页面以及对应内容ID就只可以显示隐藏信息的漏洞。这个事就留着官方下次升级的时候做吧。言归正传修改办法如下:
打开template\index_style\default\fenlei\content\show.htm 找到第100-102行 用如下代码替换。
function editinfo(aid){ if("{$userdb.uid}"=="{$info.uid}" || "{$userdb.uid}"==1) { location.href = "{:urls('content/edit')}?id="+aid; } else{layer.confirm("您没权限:");} }
添加上去之后,再点修改,如果不是信息发布者本人或是管理员,则跳出信息如下图。