card-mod-script 0.14.2 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. checksums.yaml +4 -4
  2. data/data/real.yml +50 -0
  3. data/lib/ansi2html.rb +69 -0
  4. data/lib/card/mod/script.rb +1 -0
  5. data/set/abstract/00_script.rb +4 -4
  6. data/set/abstract/02_coffee_script.rb +9 -1
  7. data/set/all/head_javascript.rb +13 -22
  8. data/set/right/script.rb +1 -1
  9. data/set/type/coffee_script.rb +6 -0
  10. data/set/type/java_script.rb +6 -0
  11. data/set/type/local_script_folder_group.rb +2 -0
  12. data/set/type/local_script_manifest_group.rb +2 -0
  13. data/set/type_plus_right/mod/script.rb +1 -5
  14. data/set/type_plus_right/set/script.rb +3 -1
  15. metadata +13 -119
  16. data/assets/script/decko/autosave.js.coffee +0 -30
  17. data/assets/script/decko/bridge.js.coffee +0 -31
  18. data/assets/script/decko/card_menu.js.coffee +0 -26
  19. data/assets/script/decko/components.js.coffee +0 -49
  20. data/assets/script/decko/decko.js.coffee +0 -82
  21. data/assets/script/decko/doubleclick.js.coffee +0 -30
  22. data/assets/script/decko/editor.js.coffee +0 -57
  23. data/assets/script/decko/filter.js.coffee +0 -183
  24. data/assets/script/decko/filter_items.js.coffee +0 -128
  25. data/assets/script/decko/filter_links.js.coffee +0 -81
  26. data/assets/script/decko/follow.js.coffee +0 -22
  27. data/assets/script/decko/layout.js.coffee +0 -76
  28. data/assets/script/decko/link_editor.js.coffee +0 -61
  29. data/assets/script/decko/mod.js.coffee +0 -79
  30. data/assets/script/decko/modal.js.coffee +0 -113
  31. data/assets/script/decko/name_editor.js.coffee +0 -40
  32. data/assets/script/decko/navbox.js.coffee +0 -74
  33. data/assets/script/decko/nest_editor.js.coffee +0 -166
  34. data/assets/script/decko/nest_editor_name.js.coffee +0 -102
  35. data/assets/script/decko/nest_editor_options.js.coffee +0 -93
  36. data/assets/script/decko/nest_editor_rules.js.coffee +0 -3
  37. data/assets/script/decko/overlay.js.coffee +0 -54
  38. data/assets/script/decko/pointer_config.js.coffee +0 -79
  39. data/assets/script/decko/pointer_list_editor.js.coffee +0 -67
  40. data/assets/script/decko/recaptcha.js.coffee +0 -19
  41. data/assets/script/decko/selectable_filtered_content.js.coffee +0 -12
  42. data/assets/script/decko/slot.js.coffee +0 -182
  43. data/assets/script/decko/slot_ready.js.coffee +0 -12
  44. data/assets/script/decko/slotter.js.coffee +0 -268
  45. data/assets/script/decko/type_editor.js.coffee +0 -21
  46. data/assets/script/decko/upload.js.coffee +0 -64
  47. data/assets/script/jquery-ui.min.js +0 -13
  48. data/assets/script/jquery.autosize.js +0 -274
  49. data/assets/script/manifest.yml +0 -57
  50. data/db/migrate_core_cards/20200804112348_add_mod_script_assets_type.rb +0 -30
  51. data/vendor/jquery_file_upload/LICENSE.txt +0 -20
  52. data/vendor/jquery_file_upload/README.md +0 -224
  53. data/vendor/jquery_file_upload/SECURITY.md +0 -227
  54. data/vendor/jquery_file_upload/VULNERABILITIES.md +0 -118
  55. data/vendor/jquery_file_upload/cors/postmessage.html +0 -85
  56. data/vendor/jquery_file_upload/cors/result.html +0 -26
  57. data/vendor/jquery_file_upload/css/jquery.fileupload-noscript.css +0 -22
  58. data/vendor/jquery_file_upload/css/jquery.fileupload-ui-noscript.css +0 -17
  59. data/vendor/jquery_file_upload/css/jquery.fileupload-ui.css +0 -68
  60. data/vendor/jquery_file_upload/css/jquery.fileupload.css +0 -36
  61. data/vendor/jquery_file_upload/docker-compose.yml +0 -55
  62. data/vendor/jquery_file_upload/img/loading.gif +0 -0
  63. data/vendor/jquery_file_upload/img/progressbar.gif +0 -0
  64. data/vendor/jquery_file_upload/index.html +0 -357
  65. data/vendor/jquery_file_upload/js/cors/jquery.postmessage-transport.js +0 -126
  66. data/vendor/jquery_file_upload/js/cors/jquery.xdr-transport.js +0 -97
  67. data/vendor/jquery_file_upload/js/demo.js +0 -75
  68. data/vendor/jquery_file_upload/js/jquery.fileupload-audio.js +0 -101
  69. data/vendor/jquery_file_upload/js/jquery.fileupload-image.js +0 -347
  70. data/vendor/jquery_file_upload/js/jquery.fileupload-process.js +0 -170
  71. data/vendor/jquery_file_upload/js/jquery.fileupload-ui.js +0 -759
  72. data/vendor/jquery_file_upload/js/jquery.fileupload-validate.js +0 -119
  73. data/vendor/jquery_file_upload/js/jquery.fileupload-video.js +0 -101
  74. data/vendor/jquery_file_upload/js/jquery.fileupload.js +0 -1604
  75. data/vendor/jquery_file_upload/js/jquery.iframe-transport.js +0 -227
  76. data/vendor/jquery_file_upload/js/vendor/jquery.ui.widget.js +0 -805
  77. data/vendor/jquery_file_upload/package-lock.json +0 -6853
  78. data/vendor/jquery_file_upload/package.json +0 -116
  79. data/vendor/jquery_file_upload/server/gae-python/app.yaml +0 -18
  80. data/vendor/jquery_file_upload/server/gae-python/main.py +0 -204
  81. data/vendor/jquery_file_upload/server/gae-python/static/favicon.ico +0 -0
  82. data/vendor/jquery_file_upload/server/gae-python/static/robots.txt +0 -2
  83. data/vendor/jquery_file_upload/server/php/Dockerfile +0 -44
  84. data/vendor/jquery_file_upload/server/php/UploadHandler.php +0 -1480
  85. data/vendor/jquery_file_upload/server/php/index.php +0 -15
  86. data/vendor/jquery_file_upload/server/php/php.ini +0 -5
  87. data/vendor/jquery_file_upload/test/index.html +0 -49
  88. data/vendor/jquery_file_upload/test/unit.js +0 -989
  89. data/vendor/jquery_file_upload/test/vendor/chai.js +0 -10854
  90. data/vendor/jquery_file_upload/test/vendor/mocha.css +0 -325
  91. data/vendor/jquery_file_upload/test/vendor/mocha.js +0 -18178
  92. data/vendor/jquery_file_upload/wdio/LICENSE.txt +0 -20
  93. data/vendor/jquery_file_upload/wdio/assets/black+white-3x2.jpg +0 -0
  94. data/vendor/jquery_file_upload/wdio/assets/black+white-60x40.gif +0 -0
  95. data/vendor/jquery_file_upload/wdio/conf/chrome.js +0 -40
  96. data/vendor/jquery_file_upload/wdio/conf/firefox.js +0 -25
  97. data/vendor/jquery_file_upload/wdio/hooks/index.js +0 -36
  98. data/vendor/jquery_file_upload/wdio/test/pages/file-upload.js +0 -79
  99. data/vendor/jquery_file_upload/wdio/test/specs/01-file-upload.js +0 -25
  100. data/vendor/jquery_file_upload/wdio/wdio.conf.js +0 -4
  101. data/vendor/jquery_rails/CHANGELOG.md +0 -359
  102. data/vendor/jquery_rails/CONTRIBUTING.md +0 -132
  103. data/vendor/jquery_rails/Gemfile +0 -22
  104. data/vendor/jquery_rails/MIT-LICENSE +0 -21
  105. data/vendor/jquery_rails/README.md +0 -75
  106. data/vendor/jquery_rails/Rakefile +0 -59
  107. data/vendor/jquery_rails/VERSIONS.md +0 -62
  108. data/vendor/jquery_rails/jquery-rails.gemspec +0 -26
  109. data/vendor/jquery_rails/lib/jquery/assert_select.rb +0 -149
  110. data/vendor/jquery_rails/lib/jquery/rails/engine.rb +0 -6
  111. data/vendor/jquery_rails/lib/jquery/rails/version.rb +0 -9
  112. data/vendor/jquery_rails/lib/jquery/rails.rb +0 -8
  113. data/vendor/jquery_rails/lib/jquery-rails.rb +0 -1
  114. data/vendor/jquery_rails/test/assert_select_jquery_test.rb +0 -85
  115. data/vendor/jquery_rails/test/test_helper.rb +0 -6
  116. data/vendor/jquery_rails/vendor/assets/javascripts/jquery.js +0 -11008
  117. data/vendor/jquery_rails/vendor/assets/javascripts/jquery.min.js +0 -5
  118. data/vendor/jquery_rails/vendor/assets/javascripts/jquery.min.map +0 -1
  119. data/vendor/jquery_rails/vendor/assets/javascripts/jquery2.js +0 -9814
  120. data/vendor/jquery_rails/vendor/assets/javascripts/jquery2.min.js +0 -4
  121. data/vendor/jquery_rails/vendor/assets/javascripts/jquery2.min.map +0 -1
  122. data/vendor/jquery_rails/vendor/assets/javascripts/jquery3.js +0 -10364
  123. data/vendor/jquery_rails/vendor/assets/javascripts/jquery3.min.js +0 -2
  124. data/vendor/jquery_rails/vendor/assets/javascripts/jquery3.min.map +0 -1
  125. data/vendor/jquery_rails/vendor/assets/javascripts/jquery_ujs.js +0 -555
@@ -1,227 +0,0 @@
1
- # File Upload Security
2
-
3
- ## Contents
4
-
5
- - [Introduction](#introduction)
6
- - [Purpose of this project](#purpose-of-this-project)
7
- - [Mitigations against file upload risks](#mitigations-against-file-upload-risks)
8
- - [Prevent code execution on the server](#prevent-code-execution-on-the-server)
9
- - [Prevent code execution in the browser](#prevent-code-execution-in-the-browser)
10
- - [Prevent distribution of malware](#prevent-distribution-of-malware)
11
- - [Secure file upload serving configurations](#secure-file-upload-serving-configurations)
12
- - [Apache config](#apache-config)
13
- - [NGINX config](#nginx-config)
14
- - [Secure image processing configurations](#secure-image-processing-configurations)
15
- - [ImageMagick config](#imagemagick-config)
16
-
17
- ## Introduction
18
-
19
- For an in-depth understanding of the potential security risks of providing file
20
- uploads and possible mitigations, please refer to the
21
- [OWASP - Unrestricted File Upload](https://owasp.org/www-community/vulnerabilities/Unrestricted_File_Upload)
22
- documentation.
23
-
24
- To securely setup the project to serve uploaded files, please refer to the
25
- sample
26
- [Secure file upload serving configurations](#secure-file-upload-serving-configurations).
27
-
28
- To mitigate potential vulnerabilities in image processing libraries, please
29
- refer to the
30
- [Secure image processing configurations](#secure-image-processing-configurations).
31
-
32
- By default, all sample upload handlers allow only upload of image files, which
33
- mitigates some attack vectors, but should not be relied on as the only
34
- protection.
35
-
36
- Please also have a look at the
37
- [list of fixed vulnerabilities](VULNERABILITIES.md) in jQuery File Upload, which
38
- relates mostly to the sample server-side upload handlers and how they have been
39
- configured.
40
-
41
- ## Purpose of this project
42
-
43
- Please note that this project is not a complete file management product, but
44
- foremost a client-side file upload library for [jQuery](https://jquery.com/).
45
- The server-side sample upload handlers are just examples to demonstrate the
46
- client-side file upload functionality.
47
-
48
- To make this very clear, there is **no user authentication** by default:
49
-
50
- - **everyone can upload files**
51
- - **everyone can delete uploaded files**
52
-
53
- In some cases this can be acceptable, but for most projects you will want to
54
- extend the sample upload handlers to integrate user authentication, or implement
55
- your own.
56
-
57
- It is also up to you to configure your web server to securely serve the uploaded
58
- files, e.g. using the
59
- [sample server configurations](#secure-file-upload-serving-configurations).
60
-
61
- ## Mitigations against file upload risks
62
-
63
- ### Prevent code execution on the server
64
-
65
- To prevent execution of scripts or binaries on server-side, the upload directory
66
- must be configured to not execute files in the upload directory (e.g.
67
- `server/php/files` as the default for the PHP upload handler) and only treat
68
- uploaded files as static content.
69
-
70
- The recommended way to do this is to configure the upload directory path to
71
- point outside of the web application root.
72
- Then the web server can be configured to serve files from the upload directory
73
- with their default static files handler only.
74
-
75
- Limiting file uploads to a whitelist of safe file types (e.g. image files) also
76
- mitigates this issue, but should not be the only protection.
77
-
78
- ### Prevent code execution in the browser
79
-
80
- To prevent execution of scripts on client-side, the following headers must be
81
- sent when delivering generic uploaded files to the client:
82
-
83
- ```
84
- Content-Type: application/octet-stream
85
- X-Content-Type-Options: nosniff
86
- ```
87
-
88
- The `Content-Type: application/octet-stream` header instructs browsers to
89
- display a download dialog instead of parsing it and possibly executing script
90
- content e.g. in HTML files.
91
-
92
- The `X-Content-Type-Options: nosniff` header prevents browsers to try to detect
93
- the file mime type despite the given content-type header.
94
-
95
- For known safe files, the content-type header can be adjusted using a
96
- **whitelist**, e.g. sending `Content-Type: image/png` for PNG files.
97
-
98
- ### Prevent distribution of malware
99
-
100
- To prevent attackers from uploading and distributing malware (e.g. computer
101
- viruses), it is recommended to limit file uploads only to a whitelist of safe
102
- file types.
103
-
104
- Please note that the detection of file types in the sample file upload handlers
105
- is based on the file extension and not the actual file content. This makes it
106
- still possible for attackers to upload malware by giving their files an image
107
- file extension, but should prevent automatic execution on client computers when
108
- opening those files.
109
-
110
- It does not protect at all from exploiting vulnerabilities in image display
111
- programs, nor from users renaming file extensions to inadvertently execute the
112
- contained malicious code.
113
-
114
- ## Secure file upload serving configurations
115
-
116
- The following configurations serve uploaded files as static files with the
117
- proper headers as
118
- [mitigation against file upload risks](#mitigations-against-file-upload-risks).
119
- Please do not simply copy&paste these configurations, but make sure you
120
- understand what they are doing and that you have implemented them correctly.
121
-
122
- > Always test your own setup and make sure that it is secure!
123
-
124
- e.g. try uploading PHP scripts (as "example.php", "example.php.png" and
125
- "example.png") to see if they get executed by your web server, e.g. the content
126
- of the following sample:
127
-
128
- ```php
129
- GIF89ad <?php echo mime_content_type(__FILE__); phpinfo();
130
- ```
131
-
132
- ### Apache config
133
-
134
- Add the following directive to the Apache config (e.g.
135
- /etc/apache2/apache2.conf), replacing the directory path with the absolute path
136
- to the upload directory:
137
-
138
- ```ApacheConf
139
- <Directory "/path/to/project/server/php/files">
140
- # Some of the directives require the Apache Headers module. If it is not
141
- # already enabled, please execute the following command and reload Apache:
142
- # sudo a2enmod headers
143
- #
144
- # Please note that the order of directives across configuration files matters,
145
- # see also:
146
- # https://httpd.apache.org/docs/current/sections.html#merging
147
-
148
- # The following directive matches all files and forces them to be handled as
149
- # static content, which prevents the server from parsing and executing files
150
- # that are associated with a dynamic runtime, e.g. PHP files.
151
- # It also forces their Content-Type header to "application/octet-stream" and
152
- # adds a "Content-Disposition: attachment" header to force a download dialog,
153
- # which prevents browsers from interpreting files in the context of the
154
- # web server, e.g. HTML files containing JavaScript.
155
- # Lastly it also prevents browsers from MIME-sniffing the Content-Type,
156
- # preventing them from interpreting a file as a different Content-Type than
157
- # the one sent by the webserver.
158
- <FilesMatch ".*">
159
- SetHandler default-handler
160
- ForceType application/octet-stream
161
- Header set Content-Disposition attachment
162
- Header set X-Content-Type-Options nosniff
163
- </FilesMatch>
164
-
165
- # The following directive matches known image files and unsets the forced
166
- # Content-Type so they can be served with their original mime type.
167
- # It also unsets the Content-Disposition header to allow displaying them
168
- # inline in the browser.
169
- <FilesMatch ".+\.(?i:(gif|jpe?g|png))$">
170
- ForceType none
171
- Header unset Content-Disposition
172
- </FilesMatch>
173
- </Directory>
174
- ```
175
-
176
- ### NGINX config
177
-
178
- Add the following directive to the NGINX config, replacing the directory path
179
- with the absolute path to the upload directory:
180
-
181
- ```Nginx
182
- location ^~ /path/to/project/server/php/files {
183
- root html;
184
- default_type application/octet-stream;
185
- types {
186
- image/gif gif;
187
- image/jpeg jpg;
188
- image/png png;
189
- }
190
- add_header X-Content-Type-Options 'nosniff';
191
- if ($request_filename ~ /(((?!\.(jpg)|(png)|(gif)$)[^/])+$)) {
192
- add_header Content-Disposition 'attachment; filename="$1"';
193
- # Add X-Content-Type-Options again, as using add_header in a new context
194
- # dismisses all previous add_header calls:
195
- add_header X-Content-Type-Options 'nosniff';
196
- }
197
- }
198
- ```
199
-
200
- ## Secure image processing configurations
201
-
202
- The following configuration mitigates
203
- [potential image processing vulnerabilities with ImageMagick](VULNERABILITIES.md#potential-vulnerabilities-with-php-imagemagick)
204
- by limiting the attack vectors to a small subset of image types
205
- (`GIF/JPEG/PNG`).
206
-
207
- Please also consider using alternative, safer image processing libraries like
208
- [libvips](https://github.com/libvips/libvips) or
209
- [imageflow](https://github.com/imazen/imageflow).
210
-
211
- ## ImageMagick config
212
-
213
- It is recommended to disable all non-required ImageMagick coders via
214
- [policy.xml](https://wiki.debian.org/imagemagick/security).
215
- To do so, locate the ImageMagick `policy.xml` configuration file and add the
216
- following policies:
217
-
218
- ```xml
219
- <?xml version="1.0" encoding="UTF-8"?>
220
- <!-- ... -->
221
- <policymap>
222
- <!-- ... -->
223
- <policy domain="delegate" rights="none" pattern="*" />
224
- <policy domain="coder" rights="none" pattern="*" />
225
- <policy domain="coder" rights="read | write" pattern="{GIF,JPEG,JPG,PNG}" />
226
- </policymap>
227
- ```
@@ -1,118 +0,0 @@
1
- # List of fixed vulnerabilities
2
-
3
- ## Contents
4
-
5
- - [Potential vulnerabilities with PHP+ImageMagick](#potential-vulnerabilities-with-phpimagemagick)
6
- - [Remote code execution vulnerability in the PHP component](#remote-code-execution-vulnerability-in-the-php-component)
7
- - [Open redirect vulnerability in the GAE components](#open-redirect-vulnerability-in-the-gae-components)
8
- - [Cross-site scripting vulnerability in the Iframe Transport](#cross-site-scripting-vulnerability-in-the-iframe-transport)
9
-
10
- ## Potential vulnerabilities with PHP+ImageMagick
11
-
12
- > Mitigated: 2018-10-25 (GMT)
13
-
14
- The sample [PHP upload handler](server/php/UploadHandler.php) before
15
- [v9.25.1](https://github.com/blueimp/jQuery-File-Upload/releases/tag/v9.25.1)
16
- did not validate file signatures before invoking
17
- [ImageMagick](https://www.imagemagick.org/) (via
18
- [Imagick](https://php.net/manual/en/book.imagick.php)).
19
- Verifying those
20
- [magic bytes](https://en.wikipedia.org/wiki/List_of_file_signatures) mitigates
21
- potential vulnerabilities when handling input files other than `GIF/JPEG/PNG`.
22
-
23
- Please also configure ImageMagick to only enable the coders required for
24
- `GIF/JPEG/PNG` processing, e.g. with the sample
25
- [ImageMagick config](SECURITY.md#imagemagick-config).
26
-
27
- **Further information:**
28
-
29
- - Commit containing the mitigation:
30
- [fe44d34](https://github.com/blueimp/jQuery-File-Upload/commit/fe44d34be43be32c6b8d507932f318dababb25dd)
31
- - [ImageTragick](https://imagetragick.com/)
32
- - [CERT Vulnerability Note VU#332928](https://www.kb.cert.org/vuls/id/332928)
33
- - [ImageMagick CVE entries](https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=imagemagick)
34
-
35
- ## Remote code execution vulnerability in the PHP component
36
-
37
- > Fixed: 2018-10-23 (GMT)
38
-
39
- The sample [PHP upload handler](server/php/UploadHandler.php) before
40
- [v9.24.1](https://github.com/blueimp/jQuery-File-Upload/releases/tag/v9.24.1)
41
- allowed to upload all file types by default.
42
- This opens up a remote code execution vulnerability, unless the server is
43
- configured to not execute (PHP) files in the upload directory
44
- (`server/php/files`).
45
-
46
- The provided [.htaccess](server/php/files/.htaccess) file includes instructions
47
- for Apache to disable script execution, however
48
- [.htaccess support](https://httpd.apache.org/docs/current/howto/htaccess.html)
49
- is disabled by default since Apache `v2.3.9` via
50
- [AllowOverride Directive](https://httpd.apache.org/docs/current/mod/core.html#allowoverride).
51
-
52
- **You are affected if you:**
53
-
54
- 1. A) Uploaded jQuery File Upload < `v9.24.1` on a Webserver that executes files
55
- with `.php` as part of the file extension (e.g. "example.php.png"), e.g.
56
- Apache with `mod_php` enabled and the following directive (_not a recommended
57
- configuration_):
58
- ```ApacheConf
59
- AddHandler php5-script .php
60
- ```
61
- B) Uploaded jQuery File Upload < `v9.22.1` on a Webserver that executes files
62
- with the file extension `.php`, e.g. Apache with `mod_php` enabled and the
63
- following directive:
64
- ```ApacheConf
65
- <FilesMatch \.php$>
66
- SetHandler application/x-httpd-php
67
- </FilesMatch>
68
- ```
69
- 2. Did not actively configure your Webserver to not execute files in the upload
70
- directory (`server/php/files`).
71
- 3. Are running Apache `v2.3.9+` with the default `AllowOverride` Directive set
72
- to `None` or another Webserver with no `.htaccess` support.
73
-
74
- **How to fix it:**
75
-
76
- 1. Upgrade to the latest version of jQuery File Upload.
77
- 2. Configure your Webserver to not execute files in the upload directory, e.g.
78
- with the [sample Apache configuration](SECURITY.md#apache-config)
79
-
80
- **Further information:**
81
-
82
- - Commits containing the security fix:
83
- [aeb47e5](https://github.com/blueimp/jQuery-File-Upload/commit/aeb47e51c67df8a504b7726595576c1c66b5dc2f),
84
- [ad4aefd](https://github.com/blueimp/jQuery-File-Upload/commit/ad4aefd96e4056deab6fea2690f0d8cf56bb2d7d)
85
- - [Full disclosure post on Hacker News](https://news.ycombinator.com/item?id=18267309).
86
- - [CVE-2018-9206](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-9206)
87
- - [OWASP - Unrestricted File Upload](https://owasp.org/www-community/vulnerabilities/Unrestricted_File_Upload)
88
-
89
- ## Open redirect vulnerability in the GAE components
90
-
91
- > Fixed: 2015-06-12 (GMT)
92
-
93
- The sample Google App Engine upload handlers before
94
- v[9.10.1](https://github.com/blueimp/jQuery-File-Upload/releases/tag/9.10.1)
95
- accepted any URL as redirect target, making it possible to use the Webserver's
96
- domain for phishing attacks.
97
-
98
- **Further information:**
99
-
100
- - Commit containing the security fix:
101
- [f74d2a8](https://github.com/blueimp/jQuery-File-Upload/commit/f74d2a8c3e3b1e8e336678d2899facd5bcdb589f)
102
- - [OWASP - Unvalidated Redirects and Forwards Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html)
103
-
104
- ## Cross-site scripting vulnerability in the Iframe Transport
105
-
106
- > Fixed: 2012-08-09 (GMT)
107
-
108
- The [redirect page](cors/result.html) for the
109
- [Iframe Transport](js/jquery.iframe-transport.js) before commit
110
- [4175032](https://github.com/blueimp/jQuery-File-Upload/commit/41750323a464e848856dc4c5c940663498beb74a)
111
- (_fixed in all tagged releases_) allowed executing arbitrary JavaScript in the
112
- context of the Webserver.
113
-
114
- **Further information:**
115
-
116
- - Commit containing the security fix:
117
- [4175032](https://github.com/blueimp/jQuery-File-Upload/commit/41750323a464e848856dc4c5c940663498beb74a)
118
- - [OWASP - Cross-site Scripting (XSS)](https://owasp.org/www-community/attacks/xss/)
@@ -1,85 +0,0 @@
1
- <!DOCTYPE html>
2
- <!--
3
- /*
4
- * jQuery File Upload Plugin postMessage API
5
- * https://github.com/blueimp/jQuery-File-Upload
6
- *
7
- * Copyright 2011, Sebastian Tschan
8
- * https://blueimp.net
9
- *
10
- * Licensed under the MIT license:
11
- * https://opensource.org/licenses/MIT
12
- */
13
- -->
14
- <html lang="en">
15
- <head>
16
- <meta charset="utf-8" />
17
- <title>jQuery File Upload Plugin postMessage API</title>
18
- <script
19
- src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"
20
- integrity="sha384-nvAa0+6Qg9clwYCGGPpDQLVpLNn0fRaROjHqs13t4Ggj3Ez50XnGQqc/r8MhnRDZ"
21
- crossorigin="anonymous"
22
- ></script>
23
- </head>
24
- <body>
25
- <script>
26
- 'use strict';
27
- var origin = /^https:\/\/example.org/,
28
- target = new RegExp('^(http(s)?:)?\\/\\/' + location.host + '\\/');
29
- $(window).on('message', function (e) {
30
- e = e.originalEvent;
31
- var s = e.data,
32
- xhr = $.ajaxSettings.xhr(),
33
- f;
34
- if (!origin.test(e.origin)) {
35
- throw new Error('Origin "' + e.origin + '" does not match ' + origin);
36
- }
37
- if (!target.test(e.data.url)) {
38
- throw new Error(
39
- 'Target "' + e.data.url + '" does not match ' + target
40
- );
41
- }
42
- $(xhr.upload).on('progress', function (ev) {
43
- ev = ev.originalEvent;
44
- e.source.postMessage(
45
- {
46
- id: s.id,
47
- type: ev.type,
48
- timeStamp: ev.timeStamp,
49
- lengthComputable: ev.lengthComputable,
50
- loaded: ev.loaded,
51
- total: ev.total
52
- },
53
- e.origin
54
- );
55
- });
56
- s.xhr = function () {
57
- return xhr;
58
- };
59
- if (!(s.data instanceof Blob)) {
60
- f = new FormData();
61
- $.each(s.data, function (i, v) {
62
- f.append(v.name, v.value);
63
- });
64
- s.data = f;
65
- }
66
- $.ajax(s).always(function (result, statusText, jqXHR) {
67
- if (!jqXHR.done) {
68
- jqXHR = result;
69
- result = null;
70
- }
71
- e.source.postMessage(
72
- {
73
- id: s.id,
74
- status: jqXHR.status,
75
- statusText: statusText,
76
- result: result,
77
- headers: jqXHR.getAllResponseHeaders()
78
- },
79
- e.origin
80
- );
81
- });
82
- });
83
- </script>
84
- </body>
85
- </html>
@@ -1,26 +0,0 @@
1
- <!DOCTYPE html>
2
- <!--
3
- /*
4
- * jQuery Iframe Transport Plugin Redirect Page
5
- * https://github.com/blueimp/jQuery-File-Upload
6
- *
7
- * Copyright 2010, Sebastian Tschan
8
- * https://blueimp.net
9
- *
10
- * Licensed under the MIT license:
11
- * https://opensource.org/licenses/MIT
12
- */
13
- -->
14
- <html lang="en">
15
- <head>
16
- <meta charset="utf-8" />
17
- <title>jQuery Iframe Transport Plugin Redirect Page</title>
18
- </head>
19
- <body>
20
- <script>
21
- document.body.innerText = document.body.textContent = decodeURIComponent(
22
- window.location.search.slice(1)
23
- );
24
- </script>
25
- </body>
26
- </html>
@@ -1,22 +0,0 @@
1
- @charset "UTF-8";
2
- /*
3
- * jQuery File Upload Plugin NoScript CSS
4
- * https://github.com/blueimp/jQuery-File-Upload
5
- *
6
- * Copyright 2013, Sebastian Tschan
7
- * https://blueimp.net
8
- *
9
- * Licensed under the MIT license:
10
- * https://opensource.org/licenses/MIT
11
- */
12
-
13
- .fileinput-button input {
14
- position: static;
15
- opacity: 1;
16
- filter: none;
17
- font-size: inherit !important;
18
- direction: inherit;
19
- }
20
- .fileinput-button span {
21
- display: none;
22
- }
@@ -1,17 +0,0 @@
1
- @charset "UTF-8";
2
- /*
3
- * jQuery File Upload UI Plugin NoScript CSS
4
- * https://github.com/blueimp/jQuery-File-Upload
5
- *
6
- * Copyright 2012, Sebastian Tschan
7
- * https://blueimp.net
8
- *
9
- * Licensed under the MIT license:
10
- * https://opensource.org/licenses/MIT
11
- */
12
-
13
- .fileinput-button i,
14
- .fileupload-buttonbar .delete,
15
- .fileupload-buttonbar .toggle {
16
- display: none;
17
- }
@@ -1,68 +0,0 @@
1
- @charset "UTF-8";
2
- /*
3
- * jQuery File Upload UI Plugin CSS
4
- * https://github.com/blueimp/jQuery-File-Upload
5
- *
6
- * Copyright 2010, Sebastian Tschan
7
- * https://blueimp.net
8
- *
9
- * Licensed under the MIT license:
10
- * https://opensource.org/licenses/MIT
11
- */
12
-
13
- .progress-animated .progress-bar,
14
- .progress-animated .bar {
15
- background: url('../img/progressbar.gif') !important;
16
- filter: none;
17
- }
18
- .fileupload-process {
19
- float: right;
20
- display: none;
21
- }
22
- .fileupload-processing .fileupload-process,
23
- .files .processing .preview {
24
- display: block;
25
- width: 32px;
26
- height: 32px;
27
- background: url('../img/loading.gif') center no-repeat;
28
- background-size: contain;
29
- }
30
- .files audio,
31
- .files video {
32
- max-width: 300px;
33
- }
34
- .files .name {
35
- word-wrap: break-word;
36
- overflow-wrap: anywhere;
37
- -webkit-hyphens: auto;
38
- hyphens: auto;
39
- }
40
- .files button {
41
- margin-bottom: 5px;
42
- }
43
- .toggle[type='checkbox'] {
44
- transform: scale(2);
45
- margin-left: 10px;
46
- }
47
-
48
- @media (max-width: 767px) {
49
- .fileupload-buttonbar .btn {
50
- margin-bottom: 5px;
51
- }
52
- .fileupload-buttonbar .delete,
53
- .fileupload-buttonbar .toggle,
54
- .files .toggle,
55
- .files .btn span {
56
- display: none;
57
- }
58
- .files audio,
59
- .files video {
60
- max-width: 80px;
61
- }
62
- }
63
-
64
- @media (max-width: 480px) {
65
- .files .image td:nth-child(2) {
66
- display: none;
67
- }
68
- }
@@ -1,36 +0,0 @@
1
- @charset "UTF-8";
2
- /*
3
- * jQuery File Upload Plugin CSS
4
- * https://github.com/blueimp/jQuery-File-Upload
5
- *
6
- * Copyright 2013, Sebastian Tschan
7
- * https://blueimp.net
8
- *
9
- * Licensed under the MIT license:
10
- * https://opensource.org/licenses/MIT
11
- */
12
-
13
- .fileinput-button {
14
- position: relative;
15
- overflow: hidden;
16
- display: inline-block;
17
- }
18
- .fileinput-button input {
19
- position: absolute;
20
- top: 0;
21
- right: 0;
22
- margin: 0;
23
- height: 100%;
24
- opacity: 0;
25
- filter: alpha(opacity=0);
26
- font-size: 200px !important;
27
- direction: ltr;
28
- cursor: pointer;
29
- }
30
-
31
- /* Fixes for IE < 8 */
32
- @media screen\9 {
33
- .fileinput-button input {
34
- font-size: 150% !important;
35
- }
36
- }
@@ -1,55 +0,0 @@
1
- version: '3.7'
2
- services:
3
- example:
4
- build: server/php
5
- ports:
6
- - 127.0.0.1:80:80
7
- volumes:
8
- - .:/var/www/html
9
- mocha:
10
- image: blueimp/mocha-chrome
11
- command: http://example/test
12
- environment:
13
- - WAIT_FOR_HOSTS=example:80
14
- depends_on:
15
- - example
16
- chromedriver:
17
- image: blueimp/chromedriver
18
- tmpfs: /tmp
19
- environment:
20
- - DISABLE_X11=false
21
- - ENABLE_VNC=true
22
- - EXPOSE_X11=true
23
- volumes:
24
- - ./wdio/assets:/home/webdriver/assets:ro
25
- ports:
26
- - 127.0.0.1:5900:5900
27
- geckodriver:
28
- image: blueimp/geckodriver
29
- tmpfs: /tmp
30
- shm_size: 2g
31
- environment:
32
- - DISABLE_X11=false
33
- - ENABLE_VNC=true
34
- - EXPOSE_X11=true
35
- volumes:
36
- - ./wdio/assets:/home/webdriver/assets:ro
37
- ports:
38
- - 127.0.0.1:5901:5900
39
- wdio:
40
- image: blueimp/wdio
41
- read_only: true
42
- tmpfs:
43
- - /tmp
44
- environment:
45
- - WAIT_FOR_HOSTS=chromedriver:4444 geckodriver:4444 example:80
46
- - WINDOWS_HOST
47
- - MACOS_ASSETS_DIR=$PWD/wdio/assets/
48
- - WINDOWS_ASSETS_DIR
49
- volumes:
50
- - ./wdio:/app:ro
51
- - ./wdio/reports:/app/reports
52
- depends_on:
53
- - chromedriver
54
- - geckodriver
55
- - example