{"id":13484054,"url":"https://github.com/dtaniwaki/rack-secure-upload","last_synced_at":"2025-11-11T19:36:55.513Z","repository":{"id":56890224,"uuid":"20859927","full_name":"dtaniwaki/rack-secure-upload","owner":"dtaniwaki","description":"Upload files securely","archived":false,"fork":false,"pushed_at":"2018-07-28T14:03:16.000Z","size":27,"stargazers_count":74,"open_issues_count":1,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-15T06:54:35.095Z","etag":null,"topics":["rack","rails","security","upload"],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dtaniwaki.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-06-15T16:37:04.000Z","updated_at":"2023-12-20T13:42:32.000Z","dependencies_parsed_at":"2022-08-20T15:20:43.859Z","dependency_job_id":null,"html_url":"https://github.com/dtaniwaki/rack-secure-upload","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/dtaniwaki/rack-secure-upload","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dtaniwaki%2Frack-secure-upload","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dtaniwaki%2Frack-secure-upload/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dtaniwaki%2Frack-secure-upload/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dtaniwaki%2Frack-secure-upload/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dtaniwaki","download_url":"https://codeload.github.com/dtaniwaki/rack-secure-upload/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dtaniwaki%2Frack-secure-upload/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261030753,"owners_count":23100007,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["rack","rails","security","upload"],"created_at":"2024-07-31T17:01:18.731Z","updated_at":"2025-11-11T19:36:50.479Z","avatar_url":"https://github.com/dtaniwaki.png","language":"Ruby","funding_links":[],"categories":["File Upload"],"sub_categories":[],"readme":"# rack-secure-upload\n\n[![Gem Version][gem-image]][gem-link]\n[![Dependency Status][deps-image]][deps-link]\n[![Build Status][build-image]][build-link]\n[![Coverage Status][cov-image]][cov-link]\n[![Code Climate][gpa-image]][gpa-link]\n\nUpload files securely\n\n## Installation\n\nAdd the rack-secure-upload gem to your Gemfile.\n\n```ruby\ngem \"rack-secure-upload\"\n```\n\nAnd run `bundle install`.\n\n### Rack App\n\n```ruby\nrequire 'rack-secure-upload'\nuse Rack::SecureUpload::Middleware, :fsecure\nrun MyApp\n```\n\n### Rails App\n\nIn `config/application.rb`\n\n```ruby\nmodule MyApp\n  class Application \u003c Rails::Application\n    config.middleware.insert_before ActionDispatch::ParamsParser, Rack::SecureUpload::Middleware, :avast\n  end \nend\n```\n\n## Options\n\nYou can add some options like below.\n\n```ruby\nuse Rack::SecureUpload::Middleware, :fsecure, {foo: :bar}\n```\n\n### fallback\n\n- `proc { |env, params, path| }`\n  - use return value of proc\n- `:raise`\n  - raise `Rack::SecureUpload::InsecureFileError` |\n- else\n  - return `406`\n\n## AntiVirus Softwares\n\n### Avast\n\n1. Get [license](http://www.avast.com/registration-free-antivirus.php)\n2. Install the package\n\n```bash\nwget -c http://files.avast.com/files/linux/avast4workstation-1.3.0-1.i586.rpm\nsudo yum localinstall avast4workstation-1.3.0-1.i586.rpm\navast -V # Input your license\navast-update\n```\n\n### F-Secure\n\n1. Get [license](http://www.f-secure.com/en/web/business_global/trial) (Optional)\n2. Install the package\n\n```bash\nwget http://download.f-secure.com/webclub/f-secure-linux-security-10.00.60.tar.gz\ntar xvzf f-secure-linux-security-10.00.60.tar.gz\nsudo ./f-secure-linux-security-10.00.60/f-secure-linux-security-10.00.60\n```\n\n## Test this middleware\n\n1. Download [eicar test file](http://www.f-secure.com/virus-info/eicar.com)\n2. Upload it\n\nYou can try this with [sample app](https://github.com/dtaniwaki/rack-secure-upload-sample-app)\n\n## Contributing\n\n1. Fork it\n2. Create your feature branch (`git checkout -b my-new-feature`)\n3. Commit your changes (`git commit -am 'Add some feature'`)\n4. Push to the branch (`git push origin my-new-feature`)\n5. Create new [Pull Request](../../pull/new/master)\n\n## Copyright\n\nCopyright (c) 2014 Daisuke Taniwaki. See [LICENSE](LICENSE) for details.\n\n\n\n[gem-image]:   https://badge.fury.io/rb/rack-secure-upload.svg\n[gem-link]:    http://badge.fury.io/rb/rack-secure-upload\n[build-image]: https://secure.travis-ci.org/dtaniwaki/rack-secure-upload.png\n[build-link]:  http://travis-ci.org/dtaniwaki/rack-secure-upload\n[deps-image]:  https://gemnasium.com/dtaniwaki/rack-secure-upload.svg\n[deps-link]:   https://gemnasium.com/dtaniwaki/rack-secure-upload\n[cov-image]:   https://coveralls.io/repos/dtaniwaki/rack-secure-upload/badge.png\n[cov-link]:    https://coveralls.io/r/dtaniwaki/rack-secure-upload\n[gpa-image]:   https://codeclimate.com/github/dtaniwaki/rack-secure-upload.png\n[gpa-link]:    https://codeclimate.com/github/dtaniwaki/rack-secure-upload\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdtaniwaki%2Frack-secure-upload","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdtaniwaki%2Frack-secure-upload","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdtaniwaki%2Frack-secure-upload/lists"}