diff options
author | Jon Leighton <j@jonathanleighton.com> | 2011-03-10 19:35:20 +0000 |
---|---|---|
committer | Jon Leighton <j@jonathanleighton.com> | 2011-03-10 19:35:20 +0000 |
commit | 582edaa1ffd6d875e18c50e36e144544209fd158 (patch) | |
tree | ce4fb934973e1385ec64b78df6984e4a6267fc11 /railties/guides/source/security.textile | |
parent | 2d3d9e3531d0d49a94ded10b993640053bd76c03 (diff) | |
parent | 51a269b2282ec09cf58614e738a2d0e40d2909d3 (diff) | |
download | rails-582edaa1ffd6d875e18c50e36e144544209fd158.tar.gz rails-582edaa1ffd6d875e18c50e36e144544209fd158.tar.bz2 rails-582edaa1ffd6d875e18c50e36e144544209fd158.zip |
Merge branch 'master' into nested_has_many_through
Diffstat (limited to 'railties/guides/source/security.textile')
-rw-r--r-- | railties/guides/source/security.textile | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/railties/guides/source/security.textile b/railties/guides/source/security.textile index 5613156245..182f3631ef 100644 --- a/railties/guides/source/security.textile +++ b/railties/guides/source/security.textile @@ -282,7 +282,7 @@ h4. File Uploads Many web applications allow users to upload files. _(highlight)File names, which the user may choose (partly), should always be filtered_ as an attacker could use a malicious file name to overwrite any file on the server. If you store file uploads at /var/www/uploads, and the user enters a file name like “../../../etc/passwd”, it may overwrite an important file. Of course, the Ruby interpreter would need the appropriate permissions to do so – one more reason to run web servers, database servers and other programs as a less privileged Unix user. -When filtering user input file names, _(highlight)don't try to remove malicious parts_. Think of a situation where the web application removes all “../” in a file name and an attacker uses a string such as “....//” - the result will be “../”. It is best to use a whitelist approach, which _(highlight)checks for the validity of a file name with a set of accepted characters_. This is opposed to a blacklist approach which attempts to remove not allowed characters. In case it isn't a valid file name, reject it (or replace not accepted characters), but don't remove them. Here is the file name sanitizer from the "attachment_fu plugin":http://github.com/technoweenie/attachment_fu/tree/master: +When filtering user input file names, _(highlight)don't try to remove malicious parts_. Think of a situation where the web application removes all “../” in a file name and an attacker uses a string such as “....//” - the result will be “../”. It is best to use a whitelist approach, which _(highlight)checks for the validity of a file name with a set of accepted characters_. This is opposed to a blacklist approach which attempts to remove not allowed characters. In case it isn't a valid file name, reject it (or replace not accepted characters), but don't remove them. Here is the file name sanitizer from the "attachment_fu plugin":https://github.com/technoweenie/attachment_fu/tree/master: <ruby> def sanitize_filename(filename) |