在我的网站上度过了许多漫长的夜晚,现在我开始进行各种安全检查,并偶然发现以下情况:
www.mysite.com/node
Run Code Online (Sandbox Code Playgroud)
这显示了用户可以访问的最新x节点.我不希望这个视图对用户可见.我当然不希望任何其他类似的观点可用.所以,我的问题是:
您希望在自定义模块中使用hook_menu_alter()来重新路由当有人尝试加载页面时发生的情况/node.有两种方法.
首先,您可以拒绝明确的访问:
function custom_module_menu_alter(&$items) {
$items['node']['access callback'] = FALSE;
}
Run Code Online (Sandbox Code Playgroud)
其次,您可以将页面重新路由到您选择的一个:
function custom_module_menu_alter(&$items) {
$items['node']['page callback'] = 'custom_module_new_page_content';
}
function custom_module_new_page_content() {
return 'Go away!';
}
Run Code Online (Sandbox Code Playgroud)
如果您担心用户有权访问的列表,搜索结果和跟踪器是我可以回忆的其他地方.
此注释提供了使用自定义模块从搜索结果中取消设置任何内容的逻辑.
遗憾的是,如果没有直接攻击,Tracker就不是特别可定制的.您最好的选择是在contrib中使用其中一个tracker替换,或者更简单地修改随Views模块打包的Tracker替换.
编辑:澄清 - 您还可以通过可选的"核心"模块禁用跟踪器模块.但是,它是一个非常有用的功能,因此您可能希望以某种形式保留它.