如何创建url白名单功能?php

如何创建url白名单功能?php,php,Php,我想制作一个白名单,忽略网页上输入的所有未经授权的字符,例如: 127.0.0.1/myweb/home.php?u=user // here is the authorized(default) url 但当攻击者(当然是用户)将我的默认url设置为如下所示: 127.0.0.1/myweb/home.php/>"><script>alert("XSS")</script>&?u=user 127.0.0.1/myweb/home.php?u=u

我想制作一个白名单,忽略网页上输入的所有未经授权的字符,例如:

127.0.0.1/myweb/home.php?u=user // here is the authorized(default) url
但当攻击者(当然是用户)将我的默认url设置为如下所示:

127.0.0.1/myweb/home.php/>"><script>alert("XSS")</script>&?u=user
127.0.0.1/myweb/home.php?u=user // back to the authorized url/s
但是我没有任何代码或知识来执行此操作,我尝试了
preg_match()
进行匹配如果url上存在一些代码XSS类型代码,那么它将重定向到错误页面。但是有些人说这是不可取的,因为它被称为
黑名单
,可取的是
白名单
。我确实搜索了一些白名单的例子,但是我没有找到我想要的。如果我找不到关于白名单的任何需要,我可能会继续执行
preg_match()
aka黑名单类型的代码

附加(错误日志apache)


[Wed Jun 01 21:53:50.244776 2016][core:error][pid 3684:tid 1684](20024)给定路径格式错误或包含无效字符:[client 127.0.0.1:51833]AH00127:无法映射GET/ooplr2/home.php/%3E%22%3E%3Cscript%3Ealert(%22XSS%22)%3C/index.php HTTP/1.1到文件您可以使用strip_标签()函数:

您可以使用strip标签()功能:

您应该做的是验证输入数据。正如您已经提到的,依赖任何用户输入都无法保存,因此您应该对其进行过滤。这取决于你的需要

简单方法:
strip\u tags()
->


自定义方式:
正则表达式
->

您应该做的是验证输入数据。正如您已经提到的,依赖任何用户输入都无法保存,因此您应该对其进行过滤。这取决于你的需要

简单方法:
strip\u tags()
->


自定义方式:
正则表达式
->

安全吗?我的意思是基本上可以防止url xss攻击?我在stackoverflow上读到一篇帖子,上面说不是吗?嗯,如果这个函数能解决我的问题,我会用它。谢谢,安全吗?我的意思是基本上可以防止url xss攻击?我在stackoverflow上读到一篇帖子,上面说不是吗?嗯,如果这个函数能解决我的问题,我会用它。感谢这还取决于您处理输入数据的方式。它们是用在PHP中还是用在sql语句中?对于sql,您应该在您提供的自定义方式链接中查看
PDO
->和准备好的语句->区域,该区域显示:测试的示例文本:如果在我的网页上检测到字符,它将转义/忽略或其他内容?对不起,似乎我不明白。我正在使用pdo,但我唯一的问题是url xss攻击类型?!每当我在
home.php
之后键入
/
时,我的页面就被破坏了,我甚至没有输入javascript类型的tagsany错误消息?你检查过你的php/apache(?)日志了吗?我会在我的问题上发表,谢谢。这也取决于你处理输入数据的方式。它们是用在PHP中还是用在sql语句中?对于sql,您应该在您提供的自定义方式链接中查看
PDO
->和准备好的语句->区域,该区域显示:测试的示例文本:如果在我的网页上检测到字符,它将转义/忽略或其他内容?对不起,似乎我不明白。我正在使用pdo,但我唯一的问题是url xss攻击类型?!每当我在
home.php
之后键入
/
时,我的页面就被破坏了,我甚至没有输入javascript类型的tagsany错误消息?你检查过你的php/apache(?)日志了吗?我会把它贴在我的问题上,谢谢