我有这个代码可以阻止人们在查询字符串中输入点和斜杠。 该字符串被定义为一个变量,如果该变量包含一个''或者' /'我想用禁止和主要替换它们。
<?php
if( strpos( $page, '/' ) === true ) { $page = 'forbidden'; $inner_page = 'main'; }
elseif( strpos( $page, '.' ) === true ) { $page = 'forbidden'; $inner_page = 'main'; }
elseif( strpos( $inner_page, '/' ) === true ) { $page = 'forbidden'; $inner_page = 'main'; }
elseif( strpos( $inner_page, '.' ) === true ) { $page = 'forbidden'; $inner_page = 'main'; }
?>
此代码(isAllowedURL.php)正在加载到此代码中:
<?php
$page = 'home';
$inner_page = 'main';
if( isset( $_GET['page'] ) )
{
$page = htmlspecialchars( $_GET['page'] );
}
if( isset( $_GET['subpage'] ) )
{
$inner_page = htmlspecialchars( $_GET['subpage'] );
}
include ('/indexBuilder/linkSecurity/isAllowedURL.php');
?>
正如您所看到的,如果变量存在,它会将变量更改为查询,如果变量包含禁止的字符,我想将其更改回来。
为什么此代码无法正常运行?
- 我将true更改为false,并禁止每个页面被修改,将其更改回来,没有任何地方。
答案 0 :(得分:0)
求助:
您需要使用!==查看它们是否存在。你也不能在strpos上使用true。
if( strpos( $page, '/' ) !== false ) { $page = 'forbidden'; $inner_page = 'main'; }