Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 4605690
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 22, 20262026-05-22T00:27:56+00:00 2026-05-22T00:27:56+00:00

I have a situation where I want encoded slashes in a URI ( %2F

  • 0

I have a situation where I want encoded slashes in a URI (%2F), but my .htaccess rules are ignored when I make the request, sending me instead to a 404 page. I quickly found the Apache directive AllowEncodedSlashes, which I plan to turn on, but I still don’t understand why it’s a security risk in the first place. Couldn’t anyone manually transform the encoded slashes to real slashes, if they were trying to be nefarious? (Although I can’t see what harm they could do…)

The application I’m testing is written in PHP, and the mod_rewrite rule that interfaces with it looks like:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^test/(.*)$ /test.php?_escaped_fragment_=$1 [NE,QSA,L]

I just want to make sure I understand the risks before proceeding.


To clarify: Apache does not allow encoded slashes in the path, but they are allowed in the query string. The query string is just as susceptible to the exploits listed by Christian below (“Remote Code Execution, Local File Access and Directory Traversal”).

So why did the ASF go so far as to create a special directive just to allow this behavior? I’m not trying to be difficult, I just really don’t understand. I think it goes without saying that any user input (including the URI) needs to be verified before using it in any database or file system function.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-22T00:27:57+00:00Added an answer on May 22, 2026 at 12:27 am

    I would think it is fine to use escaped slashes anywhere in a URL if escaping is warranted. For instance, the example cited in the following (relevant) question is a very reasonable one:

    Is a slash ("/") equivalent to an encoded slash ("%2F") in the path portion of an HTTP URL

    As for why it would be disabled by default…this blog entry from back in 2003 suggests it is to “protect lame CGI scripts from themselves”:

    http://ken.coar.org/burrow/Apache_2f_encoding_decoding_and_security

    Certain careless practices probably lead some people to find themselves in a codebase with a string they’re unsure whether to unescape or not. So they unescape it “just to be safe”. But this may occur after a point that assumed there were no path characters… and it gets passed on into some executable context that believed it had done all the checking it needed to.

    So if you’re using the recommended methods of most modern web frameworks, I doubt this is a significant issue and you can use AllowEncodedSlashes without much concern.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have a situation where i want to add LinePragmas to CodeDom objects. But
I have a situation where I want to catch 404 errors fired by HTML
I have a situation where I want a bash script to replace an entire
I have a situation where I want certain code to be executed no matter
I have a situation where i want to return List<> from this function public
I have a situation where I want a Java client to have a two-way
I have a situation where I want to create a mapping from a tuple
I have a situation where I want to map a pair of objects to
I have this situation where I want to display a list of Administration objects
I have a situation where I want my program to read in some numbers

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.