php可能存在筛选器_VALIDATE_URL+;fopen($url,";r";)-url验证

php可能存在筛选器_VALIDATE_URL+;fopen($url,";r";)-url验证,php,filter,fopen,url-validation,Php,Filter,Fopen,Url Validation,我网站中的URL将具有国际字符,如ş,ğ,ı 在阅读了大量关于url验证问题的帖子和博客后,我决定用另一段代码来支持filter\u var($url,filter\u VALIDATE\u url) 如果url包含int.字符,则无法验证url bažmegakapa以+7回答 然后,我决定用这个想法 bažmegakapa提供使用 if(preg#u match(“#^https?:/。+#“,$link”)和@fopen($link,r”))回显“OK” 若要查看链接是否可以打开,则表示该

我网站中的URL将具有国际字符,如
ş
ğ
ı

在阅读了大量关于url验证问题的帖子和博客后,我决定用另一段代码来支持
filter\u var($url,filter\u VALIDATE\u url)

  • 如果url包含int.字符,则无法验证url
  • bažmegakapa以+7回答
  • 然后,我决定用这个想法

    bažmegakapa提供使用

    if(preg#u match(“#^https?:/。+#“,$link”)和@fopen($link,r”))回显“OK”

    若要查看链接是否可以打开,则表示该链接已验证

    在这一点之后,我的问题是:

    问题-我喜欢这个主意&在我看来,它非常棒。但是在看到它只有+7并且页面有+>>7个答案之后,我想问一下,php大师们的想法是什么,他们会很乐意回答这个问题来帮助像我这样的人;新秀

    bažmegakapa的代码中有任何弱点吗?例如,我不知道,但是否有任何fopen无法打开的url,但实际上它是一个无害的,必须经过验证的url?那么,如何解决您发现的弱点呢

    多谢各位


    filter\u var($url,filter\u VALIDATE\u url)
    认为
    javascript://test%0Aalert(321)
    valid不是缺点。如果你认为是这样,那么你对
    filter\u var
    的期望是错误的

    filter\u var($url,filter\u VALIDATE\u url)
    根据url验证url的语法

    • 这并不意味着确定URL指向的资源是否可访问
    • 这并不意味着确定当用户提供URL时,在HTML文档的
      a
      元素中将URL用作
      href
      属性的值是否安全
    • >P>不打算考虑该方案(可能会限制URL超出所描述的内容)。例如

      • ftp://foo:bar@baz
        是一个有效的FTP URL,根据
      • http://foo:bar@根据,baz
        不是有效的HTTP URL(即使某些浏览器可以解释此类“URL”)
    filter\u var
    既不烤蛋糕,也不煮咖啡。如果你需要蛋糕或咖啡,可以用其他东西(这是一个好的开始)

    根据具体情况,显示指向服务器无法访问的资源的URL可能是个好主意,也可能是个坏主意。根据具体情况,显示不指向HTTP或HTTPS资源的URL可能是个好主意,也可能是个坏主意。一个尺码不适合所有人