2012-12-27 6 views
5

Dostaję ścieżkę /#! żądaną regularnie na moim blogu i zastanawiałem się, dlaczego tak się stało (ponieważ nie pasuje do żadnego adresu URL/zasobu na moim blogu). Agent użytkownika mówi zawsze o przeglądarkach IE7, które żądają tego, ale z wielu różnych adresów IP. Próbuję się dowiedzieć, czy mogę to zignorować, czy też muszę coś z tym zrobić. W szczególności chcę wiedzieć:Czy ścieżka adresu URL "/ #!" specjalny lub exploit?

  • Czy jest to specjalny adres URL niektórych przeglądarek/serwerów?
  • Czy jest on powiązany z konkretnym exploitem?

Czy mogę go zignorować?

Jeśli ma to znaczenie, witryna jest hostowana w Windows Blue i działa na MVC4.

Odpowiedz

7

To jest hash-bang URL. Są używane przez niektóre aplikacje internetowe AJAX, takie jak Facebook i Twitter. Google ma dla nich około special treatment, aby zaindeksować zwykle nieobsługiwane witryny AJAX.

Jeśli jednak Twoja witryna nie korzysta z aplikacji, która ich używa, nie powinieneś ich widzieć. I zdecydowanie nie powinno się ich widzieć po stronie serwera, ponieważ chodzi o to, że wszystko, co następuje po # w adresie URL, to fragment identifier i powinno zostać usunięte przez klienta użytkownika, zanim zażąda adresu URL z serwera.

Edytuj: Gdybym musiał zgadywać, co żąda takich adresów URL, powiedziałbym, że może to być jakiś bot z błędami. Fakt, że najwyraźniej udaje, że jest IE sugeruje, że może to nie być nic dobrego; może to jakiś spambot. W każdym razie prośby jako takie są najprawdopodobniej nieszkodliwe i można je zignorować. Jeśli to sprawia, że ​​czujesz się lepiej, zawsze można skonfigurować reguły przepisywania wyraźnie odrzucają je, coś takiego:

RewriteRule \x23 - [F] 

Ten powinien odrzucić wszelkie wnioski o adresach URL zawierających # postać z 403 błędu zabronione.

+0

Tak sprawia, że ​​wiele sensu, jestem całkiem zdezorientowany, dlaczego to jest wymagane od ale serwer. Być może jest to specyficzny problem z IE7 i jedną z uruchomionych wtyczek (Twitter, Google + i Disqus, prawdopodobnie ten drugi) –

2

Cóż, # jest prawidłową kotwicą, która po prostu oznacza "stronę". Możesz także zrobić "!" kotwica, np.

<!-- some html here --> 
<a href="#!">Click me!</a> 
<!-- lots more html --> 
<div id="!"> 
    Wooaaaah! 
</div> 

Więc domyślam się, że można bezpiecznie zignorować ... ale to tylko przypuszczenie;)