diff --git a/spec/features/insecure_dor_spec.rb b/spec/features/insecure_dor_spec.rb new file mode 100644 index 0000000..b0ac570 --- /dev/null +++ b/spec/features/insecure_dor_spec.rb @@ -0,0 +1,29 @@ +require 'spec_helper' + +feature 'insecure direct object reference' do + before do + UserFixture.reset_all_users + @normal_user = UserFixture.normal_user + end + + scenario 'download production configuration' do + login(@normal_user) + + visit "/users/#{@normal_user.user_id}/benefit_forms" + download_url = first('.widget-body a')[:href] + visit download_url.sub(/name=(.*?)&/, 'name=../../config/database.yml&') + + page.status_code.should == 200 + page.response_headers['Content-Disposition'].should include('database.yml') + page.response_headers['Content-Length'].should == '576' + end + + scenario 'view any user work_info' do + login(@normal_user) + + @normal_user.user_id.should_not == 2 + visit '/users/2/work_info' + + first('td').text.should == 'Jack Mannino' + end +end \ No newline at end of file