Merge branch 'master' of https://github.com/shish/shimmie2
This commit is contained in:
		
						commit
						a6d84ad1d8
					
				| @ -29,6 +29,7 @@ | |||||||
| 		"ifixit/php-akismet"        : "1.*", | 		"ifixit/php-akismet"        : "1.*", | ||||||
| 		"google/recaptcha"          : "~1.1", | 		"google/recaptcha"          : "~1.1", | ||||||
| 		"dapphp/securimage"         : "3.6.*", | 		"dapphp/securimage"         : "3.6.*", | ||||||
|  | 		"enshrined/svg-sanitize"    : "0.8.2", | ||||||
| 
 | 
 | ||||||
| 		"bower-asset/jquery"         : "1.12.3", | 		"bower-asset/jquery"         : "1.12.3", | ||||||
| 		"bower-asset/jquery-timeago" : "1.5.2", | 		"bower-asset/jquery-timeago" : "1.5.2", | ||||||
|  | |||||||
							
								
								
									
										176
									
								
								composer.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										176
									
								
								composer.lock
									
									
									
										generated
									
									
									
								
							| @ -4,7 +4,7 @@ | |||||||
|         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", |         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", | ||||||
|         "This file is @generated automatically" |         "This file is @generated automatically" | ||||||
|     ], |     ], | ||||||
|     "content-hash": "040335a85a560b3bdd3dcf55490c98a1", |     "content-hash": "7f6f5b16df991e848ec468b49c856dea", | ||||||
|     "packages": [ |     "packages": [ | ||||||
|         { |         { | ||||||
|             "name": "bower-asset/jquery", |             "name": "bower-asset/jquery", | ||||||
| @ -91,32 +91,32 @@ | |||||||
|             "source": { |             "source": { | ||||||
|                 "type": "git", |                 "type": "git", | ||||||
|                 "url": "https://github.com/christianbach/tablesorter.git", |                 "url": "https://github.com/christianbach/tablesorter.git", | ||||||
|                 "reference": "774576308e8a25aa9d68b7fe3069b79543992d7a" |                 "reference": "07e0918254df3c2057d6d8e4653a0769f1881412" | ||||||
|             }, |             }, | ||||||
|             "dist": { |             "dist": { | ||||||
|                 "type": "zip", |                 "type": "zip", | ||||||
|                 "url": "https://api.github.com/repos/christianbach/tablesorter/zipball/774576308e8a25aa9d68b7fe3069b79543992d7a", |                 "url": "https://api.github.com/repos/christianbach/tablesorter/zipball/07e0918254df3c2057d6d8e4653a0769f1881412", | ||||||
|                 "reference": "774576308e8a25aa9d68b7fe3069b79543992d7a", |                 "reference": "07e0918254df3c2057d6d8e4653a0769f1881412", | ||||||
|                 "shasum": null |                 "shasum": null | ||||||
|             }, |             }, | ||||||
|             "type": "bower-asset", |             "type": "bower-asset", | ||||||
|             "license": [ |             "license": [ | ||||||
|                 "MIT,GPL" |                 "MIT,GPL" | ||||||
|             ], |             ], | ||||||
|             "time": "2015-12-03T01:22:52+00:00" |             "time": "2017-12-20T18:16:21+00:00" | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|             "name": "dapphp/securimage", |             "name": "dapphp/securimage", | ||||||
|             "version": "3.6.5", |             "version": "3.6.6", | ||||||
|             "source": { |             "source": { | ||||||
|                 "type": "git", |                 "type": "git", | ||||||
|                 "url": "https://github.com/dapphp/securimage.git", |                 "url": "https://github.com/dapphp/securimage.git", | ||||||
|                 "reference": "3f5a84fd80b1a35d58332896c944142713a7e802" |                 "reference": "6eea2798f56540fa88356c98f282d6391a72be15" | ||||||
|             }, |             }, | ||||||
|             "dist": { |             "dist": { | ||||||
|                 "type": "zip", |                 "type": "zip", | ||||||
|                 "url": "https://api.github.com/repos/dapphp/securimage/zipball/3f5a84fd80b1a35d58332896c944142713a7e802", |                 "url": "https://api.github.com/repos/dapphp/securimage/zipball/6eea2798f56540fa88356c98f282d6391a72be15", | ||||||
|                 "reference": "3f5a84fd80b1a35d58332896c944142713a7e802", |                 "reference": "6eea2798f56540fa88356c98f282d6391a72be15", | ||||||
|                 "shasum": "" |                 "shasum": "" | ||||||
|             }, |             }, | ||||||
|             "require": { |             "require": { | ||||||
| @ -150,7 +150,44 @@ | |||||||
|                 "captcha", |                 "captcha", | ||||||
|                 "security" |                 "security" | ||||||
|             ], |             ], | ||||||
|             "time": "2016-12-04T17:45:57+00:00" |             "time": "2017-11-21T02:29:19+00:00" | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |             "name": "enshrined/svg-sanitize", | ||||||
|  |             "version": "0.8.2", | ||||||
|  |             "source": { | ||||||
|  |                 "type": "git", | ||||||
|  |                 "url": "https://github.com/darylldoyle/svg-sanitizer.git", | ||||||
|  |                 "reference": "432fc4fc7e95b8a866790ba27e35076b9dd96ebe" | ||||||
|  |             }, | ||||||
|  |             "dist": { | ||||||
|  |                 "type": "zip", | ||||||
|  |                 "url": "https://api.github.com/repos/darylldoyle/svg-sanitizer/zipball/432fc4fc7e95b8a866790ba27e35076b9dd96ebe", | ||||||
|  |                 "reference": "432fc4fc7e95b8a866790ba27e35076b9dd96ebe", | ||||||
|  |                 "shasum": "" | ||||||
|  |             }, | ||||||
|  |             "require-dev": { | ||||||
|  |                 "codeclimate/php-test-reporter": "^0.1.2", | ||||||
|  |                 "phpunit/phpunit": "^4.7" | ||||||
|  |             }, | ||||||
|  |             "type": "library", | ||||||
|  |             "autoload": { | ||||||
|  |                 "psr-4": { | ||||||
|  |                     "enshrined\\svgSanitize\\": "src" | ||||||
|  |                 } | ||||||
|  |             }, | ||||||
|  |             "notification-url": "https://packagist.org/downloads/", | ||||||
|  |             "license": [ | ||||||
|  |                 "GPL-2.0+" | ||||||
|  |             ], | ||||||
|  |             "authors": [ | ||||||
|  |                 { | ||||||
|  |                     "name": "Daryll Doyle", | ||||||
|  |                     "email": "daryll@enshrined.co.uk" | ||||||
|  |                 } | ||||||
|  |             ], | ||||||
|  |             "description": "An SVG sanitizer for PHP", | ||||||
|  |             "time": "2017-12-06T15:31:26+00:00" | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|             "name": "flexihash/flexihash", |             "name": "flexihash/flexihash", | ||||||
| @ -318,37 +355,40 @@ | |||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|             "name": "myclabs/deep-copy", |             "name": "myclabs/deep-copy", | ||||||
|             "version": "1.x-dev", |             "version": "1.7.0", | ||||||
|             "source": { |             "source": { | ||||||
|                 "type": "git", |                 "type": "git", | ||||||
|                 "url": "https://github.com/myclabs/DeepCopy.git", |                 "url": "https://github.com/myclabs/DeepCopy.git", | ||||||
|                 "reference": "8e6e04167378abf1ddb4d3522d8755c5fd90d102" |                 "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e" | ||||||
|             }, |             }, | ||||||
|             "dist": { |             "dist": { | ||||||
|                 "type": "zip", |                 "type": "zip", | ||||||
|                 "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/8e6e04167378abf1ddb4d3522d8755c5fd90d102", |                 "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e", | ||||||
|                 "reference": "8e6e04167378abf1ddb4d3522d8755c5fd90d102", |                 "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e", | ||||||
|                 "shasum": "" |                 "shasum": "" | ||||||
|             }, |             }, | ||||||
|             "require": { |             "require": { | ||||||
|                 "php": ">=5.4.0" |                 "php": "^5.6 || ^7.0" | ||||||
|             }, |             }, | ||||||
|             "require-dev": { |             "require-dev": { | ||||||
|                 "doctrine/collections": "1.*", |                 "doctrine/collections": "^1.0", | ||||||
|                 "phpunit/phpunit": "~4.1" |                 "doctrine/common": "^2.6", | ||||||
|  |                 "phpunit/phpunit": "^4.1" | ||||||
|             }, |             }, | ||||||
|             "type": "library", |             "type": "library", | ||||||
|             "autoload": { |             "autoload": { | ||||||
|                 "psr-4": { |                 "psr-4": { | ||||||
|                     "DeepCopy\\": "src/DeepCopy/" |                     "DeepCopy\\": "src/DeepCopy/" | ||||||
|                 } |                 }, | ||||||
|  |                 "files": [ | ||||||
|  |                     "src/DeepCopy/deep_copy.php" | ||||||
|  |                 ] | ||||||
|             }, |             }, | ||||||
|             "notification-url": "https://packagist.org/downloads/", |             "notification-url": "https://packagist.org/downloads/", | ||||||
|             "license": [ |             "license": [ | ||||||
|                 "MIT" |                 "MIT" | ||||||
|             ], |             ], | ||||||
|             "description": "Create deep copies (clones) of your objects", |             "description": "Create deep copies (clones) of your objects", | ||||||
|             "homepage": "https://github.com/myclabs/DeepCopy", |  | ||||||
|             "keywords": [ |             "keywords": [ | ||||||
|                 "clone", |                 "clone", | ||||||
|                 "copy", |                 "copy", | ||||||
| @ -356,11 +396,11 @@ | |||||||
|                 "object", |                 "object", | ||||||
|                 "object graph" |                 "object graph" | ||||||
|             ], |             ], | ||||||
|             "time": "2017-04-12T18:52:22+00:00" |             "time": "2017-10-19T19:58:43+00:00" | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|             "name": "phpdocumentor/reflection-common", |             "name": "phpdocumentor/reflection-common", | ||||||
|             "version": "dev-master", |             "version": "1.0.1", | ||||||
|             "source": { |             "source": { | ||||||
|                 "type": "git", |                 "type": "git", | ||||||
|                 "url": "https://github.com/phpDocumentor/ReflectionCommon.git", |                 "url": "https://github.com/phpDocumentor/ReflectionCommon.git", | ||||||
| @ -414,22 +454,22 @@ | |||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|             "name": "phpdocumentor/reflection-docblock", |             "name": "phpdocumentor/reflection-docblock", | ||||||
|             "version": "3.2.2", |             "version": "3.3.2", | ||||||
|             "source": { |             "source": { | ||||||
|                 "type": "git", |                 "type": "git", | ||||||
|                 "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", |                 "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", | ||||||
|                 "reference": "4aada1f93c72c35e22fb1383b47fee43b8f1d157" |                 "reference": "bf329f6c1aadea3299f08ee804682b7c45b326a2" | ||||||
|             }, |             }, | ||||||
|             "dist": { |             "dist": { | ||||||
|                 "type": "zip", |                 "type": "zip", | ||||||
|                 "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/4aada1f93c72c35e22fb1383b47fee43b8f1d157", |                 "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/bf329f6c1aadea3299f08ee804682b7c45b326a2", | ||||||
|                 "reference": "4aada1f93c72c35e22fb1383b47fee43b8f1d157", |                 "reference": "bf329f6c1aadea3299f08ee804682b7c45b326a2", | ||||||
|                 "shasum": "" |                 "shasum": "" | ||||||
|             }, |             }, | ||||||
|             "require": { |             "require": { | ||||||
|                 "php": ">=5.5", |                 "php": "^5.6 || ^7.0", | ||||||
|                 "phpdocumentor/reflection-common": "^1.0@dev", |                 "phpdocumentor/reflection-common": "^1.0.0", | ||||||
|                 "phpdocumentor/type-resolver": "^0.3.0", |                 "phpdocumentor/type-resolver": "^0.4.0", | ||||||
|                 "webmozart/assert": "^1.0" |                 "webmozart/assert": "^1.0" | ||||||
|             }, |             }, | ||||||
|             "require-dev": { |             "require-dev": { | ||||||
| @ -455,20 +495,20 @@ | |||||||
|                 } |                 } | ||||||
|             ], |             ], | ||||||
|             "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", |             "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", | ||||||
|             "time": "2017-08-08T06:39:58+00:00" |             "time": "2017-11-10T14:09:06+00:00" | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|             "name": "phpdocumentor/type-resolver", |             "name": "phpdocumentor/type-resolver", | ||||||
|             "version": "0.3.0", |             "version": "0.4.0", | ||||||
|             "source": { |             "source": { | ||||||
|                 "type": "git", |                 "type": "git", | ||||||
|                 "url": "https://github.com/phpDocumentor/TypeResolver.git", |                 "url": "https://github.com/phpDocumentor/TypeResolver.git", | ||||||
|                 "reference": "fb3933512008d8162b3cdf9e18dba9309b7c3773" |                 "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7" | ||||||
|             }, |             }, | ||||||
|             "dist": { |             "dist": { | ||||||
|                 "type": "zip", |                 "type": "zip", | ||||||
|                 "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/fb3933512008d8162b3cdf9e18dba9309b7c3773", |                 "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7", | ||||||
|                 "reference": "fb3933512008d8162b3cdf9e18dba9309b7c3773", |                 "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7", | ||||||
|                 "shasum": "" |                 "shasum": "" | ||||||
|             }, |             }, | ||||||
|             "require": { |             "require": { | ||||||
| @ -502,7 +542,7 @@ | |||||||
|                     "email": "me@mikevanriel.com" |                     "email": "me@mikevanriel.com" | ||||||
|                 } |                 } | ||||||
|             ], |             ], | ||||||
|             "time": "2017-06-03T08:32:36+00:00" |             "time": "2017-07-14T14:27:02+00:00" | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|             "name": "phpspec/prophecy", |             "name": "phpspec/prophecy", | ||||||
| @ -510,12 +550,12 @@ | |||||||
|             "source": { |             "source": { | ||||||
|                 "type": "git", |                 "type": "git", | ||||||
|                 "url": "https://github.com/phpspec/prophecy.git", |                 "url": "https://github.com/phpspec/prophecy.git", | ||||||
|                 "reference": "c9b8c6088acd19d769d4cc0ffa60a9fe34344bd6" |                 "reference": "dfd6be44111a7c41c2e884a336cc4f461b3b2401" | ||||||
|             }, |             }, | ||||||
|             "dist": { |             "dist": { | ||||||
|                 "type": "zip", |                 "type": "zip", | ||||||
|                 "url": "https://api.github.com/repos/phpspec/prophecy/zipball/c9b8c6088acd19d769d4cc0ffa60a9fe34344bd6", |                 "url": "https://api.github.com/repos/phpspec/prophecy/zipball/dfd6be44111a7c41c2e884a336cc4f461b3b2401", | ||||||
|                 "reference": "c9b8c6088acd19d769d4cc0ffa60a9fe34344bd6", |                 "reference": "dfd6be44111a7c41c2e884a336cc4f461b3b2401", | ||||||
|                 "shasum": "" |                 "shasum": "" | ||||||
|             }, |             }, | ||||||
|             "require": { |             "require": { | ||||||
| @ -527,7 +567,7 @@ | |||||||
|             }, |             }, | ||||||
|             "require-dev": { |             "require-dev": { | ||||||
|                 "phpspec/phpspec": "^2.5|^3.2", |                 "phpspec/phpspec": "^2.5|^3.2", | ||||||
|                 "phpunit/phpunit": "^4.8 || ^5.6.5" |                 "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5" | ||||||
|             }, |             }, | ||||||
|             "type": "library", |             "type": "library", | ||||||
|             "extra": { |             "extra": { | ||||||
| @ -565,7 +605,7 @@ | |||||||
|                 "spy", |                 "spy", | ||||||
|                 "stub" |                 "stub" | ||||||
|             ], |             ], | ||||||
|             "time": "2017-09-04T11:05:03+00:00" |             "time": "2018-02-19T10:16:54+00:00" | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|             "name": "phpunit/php-code-coverage", |             "name": "phpunit/php-code-coverage", | ||||||
| @ -632,16 +672,16 @@ | |||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|             "name": "phpunit/php-file-iterator", |             "name": "phpunit/php-file-iterator", | ||||||
|             "version": "dev-master", |             "version": "1.4.x-dev", | ||||||
|             "source": { |             "source": { | ||||||
|                 "type": "git", |                 "type": "git", | ||||||
|                 "url": "https://github.com/sebastianbergmann/php-file-iterator.git", |                 "url": "https://github.com/sebastianbergmann/php-file-iterator.git", | ||||||
|                 "reference": "3cc8f69b3028d0f96a9078e6295d86e9bf019be5" |                 "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4" | ||||||
|             }, |             }, | ||||||
|             "dist": { |             "dist": { | ||||||
|                 "type": "zip", |                 "type": "zip", | ||||||
|                 "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/3cc8f69b3028d0f96a9078e6295d86e9bf019be5", |                 "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4", | ||||||
|                 "reference": "3cc8f69b3028d0f96a9078e6295d86e9bf019be5", |                 "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4", | ||||||
|                 "shasum": "" |                 "shasum": "" | ||||||
|             }, |             }, | ||||||
|             "require": { |             "require": { | ||||||
| @ -675,7 +715,7 @@ | |||||||
|                 "filesystem", |                 "filesystem", | ||||||
|                 "iterator" |                 "iterator" | ||||||
|             ], |             ], | ||||||
|             "time": "2016-10-03T07:40:28+00:00" |             "time": "2017-11-27T13:52:08+00:00" | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|             "name": "phpunit/php-text-template", |             "name": "phpunit/php-text-template", | ||||||
| @ -720,16 +760,16 @@ | |||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|             "name": "phpunit/php-timer", |             "name": "phpunit/php-timer", | ||||||
|             "version": "dev-master", |             "version": "1.0.x-dev", | ||||||
|             "source": { |             "source": { | ||||||
|                 "type": "git", |                 "type": "git", | ||||||
|                 "url": "https://github.com/sebastianbergmann/php-timer.git", |                 "url": "https://github.com/sebastianbergmann/php-timer.git", | ||||||
|                 "reference": "d107f347d368dd8a384601398280c7c608390ab7" |                 "reference": "9513098641797ce5f459dbc1de5a54c29b0ec1fb" | ||||||
|             }, |             }, | ||||||
|             "dist": { |             "dist": { | ||||||
|                 "type": "zip", |                 "type": "zip", | ||||||
|                 "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/d107f347d368dd8a384601398280c7c608390ab7", |                 "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/9513098641797ce5f459dbc1de5a54c29b0ec1fb", | ||||||
|                 "reference": "d107f347d368dd8a384601398280c7c608390ab7", |                 "reference": "9513098641797ce5f459dbc1de5a54c29b0ec1fb", | ||||||
|                 "shasum": "" |                 "shasum": "" | ||||||
|             }, |             }, | ||||||
|             "require": { |             "require": { | ||||||
| @ -765,7 +805,7 @@ | |||||||
|             "keywords": [ |             "keywords": [ | ||||||
|                 "timer" |                 "timer" | ||||||
|             ], |             ], | ||||||
|             "time": "2017-03-07T15:42:04+00:00" |             "time": "2018-01-06T05:27:16+00:00" | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|             "name": "phpunit/php-token-stream", |             "name": "phpunit/php-token-stream", | ||||||
| @ -773,12 +813,12 @@ | |||||||
|             "source": { |             "source": { | ||||||
|                 "type": "git", |                 "type": "git", | ||||||
|                 "url": "https://github.com/sebastianbergmann/php-token-stream.git", |                 "url": "https://github.com/sebastianbergmann/php-token-stream.git", | ||||||
|                 "reference": "958103f327daef5dd0bb328dec53e0a9e43cfaf7" |                 "reference": "58bd196ce8bc49389307b3787934a5117db80fea" | ||||||
|             }, |             }, | ||||||
|             "dist": { |             "dist": { | ||||||
|                 "type": "zip", |                 "type": "zip", | ||||||
|                 "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/958103f327daef5dd0bb328dec53e0a9e43cfaf7", |                 "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/58bd196ce8bc49389307b3787934a5117db80fea", | ||||||
|                 "reference": "958103f327daef5dd0bb328dec53e0a9e43cfaf7", |                 "reference": "58bd196ce8bc49389307b3787934a5117db80fea", | ||||||
|                 "shasum": "" |                 "shasum": "" | ||||||
|             }, |             }, | ||||||
|             "require": { |             "require": { | ||||||
| @ -814,7 +854,7 @@ | |||||||
|             "keywords": [ |             "keywords": [ | ||||||
|                 "tokenizer" |                 "tokenizer" | ||||||
|             ], |             ], | ||||||
|             "time": "2017-03-07T08:21:50+00:00" |             "time": "2017-12-04T15:11:28+00:00" | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|             "name": "phpunit/phpunit", |             "name": "phpunit/phpunit", | ||||||
| @ -822,12 +862,12 @@ | |||||||
|             "source": { |             "source": { | ||||||
|                 "type": "git", |                 "type": "git", | ||||||
|                 "url": "https://github.com/sebastianbergmann/phpunit.git", |                 "url": "https://github.com/sebastianbergmann/phpunit.git", | ||||||
|                 "reference": "4eba3374803c6c0903145e8940844e6f1d665c07" |                 "reference": "b7803aeca3ccb99ad0a506fa80b64cd6a56bbc0c" | ||||||
|             }, |             }, | ||||||
|             "dist": { |             "dist": { | ||||||
|                 "type": "zip", |                 "type": "zip", | ||||||
|                 "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/4eba3374803c6c0903145e8940844e6f1d665c07", |                 "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/b7803aeca3ccb99ad0a506fa80b64cd6a56bbc0c", | ||||||
|                 "reference": "4eba3374803c6c0903145e8940844e6f1d665c07", |                 "reference": "b7803aeca3ccb99ad0a506fa80b64cd6a56bbc0c", | ||||||
|                 "shasum": "" |                 "shasum": "" | ||||||
|             }, |             }, | ||||||
|             "require": { |             "require": { | ||||||
| @ -851,8 +891,8 @@ | |||||||
|                 "sebastian/global-state": "^1.1", |                 "sebastian/global-state": "^1.1", | ||||||
|                 "sebastian/object-enumerator": "~2.0", |                 "sebastian/object-enumerator": "~2.0", | ||||||
|                 "sebastian/resource-operations": "~1.0", |                 "sebastian/resource-operations": "~1.0", | ||||||
|                 "sebastian/version": "~1.0.3|~2.0", |                 "sebastian/version": "^1.0.6|^2.0.1", | ||||||
|                 "symfony/yaml": "~2.1|~3.0" |                 "symfony/yaml": "~2.1|~3.0|~4.0" | ||||||
|             }, |             }, | ||||||
|             "conflict": { |             "conflict": { | ||||||
|                 "phpdocumentor/reflection-docblock": "3.0.2" |                 "phpdocumentor/reflection-docblock": "3.0.2" | ||||||
| @ -896,7 +936,7 @@ | |||||||
|                 "testing", |                 "testing", | ||||||
|                 "xunit" |                 "xunit" | ||||||
|             ], |             ], | ||||||
|             "time": "2017-09-01T08:38:37+00:00" |             "time": "2018-02-01T05:50:59+00:00" | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|             "name": "phpunit/phpunit-mock-objects", |             "name": "phpunit/phpunit-mock-objects", | ||||||
| @ -1429,7 +1469,7 @@ | |||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|             "name": "sebastian/version", |             "name": "sebastian/version", | ||||||
|             "version": "dev-master", |             "version": "2.0.1", | ||||||
|             "source": { |             "source": { | ||||||
|                 "type": "git", |                 "type": "git", | ||||||
|                 "url": "https://github.com/sebastianbergmann/version.git", |                 "url": "https://github.com/sebastianbergmann/version.git", | ||||||
| @ -1476,12 +1516,12 @@ | |||||||
|             "source": { |             "source": { | ||||||
|                 "type": "git", |                 "type": "git", | ||||||
|                 "url": "https://github.com/symfony/yaml.git", |                 "url": "https://github.com/symfony/yaml.git", | ||||||
|                 "reference": "a0e15688972f012156cf1ffa076fe1203bce6bc9" |                 "reference": "6af42631dcf89e9c616242c900d6c52bd53bd1bb" | ||||||
|             }, |             }, | ||||||
|             "dist": { |             "dist": { | ||||||
|                 "type": "zip", |                 "type": "zip", | ||||||
|                 "url": "https://api.github.com/repos/symfony/yaml/zipball/a0e15688972f012156cf1ffa076fe1203bce6bc9", |                 "url": "https://api.github.com/repos/symfony/yaml/zipball/6af42631dcf89e9c616242c900d6c52bd53bd1bb", | ||||||
|                 "reference": "a0e15688972f012156cf1ffa076fe1203bce6bc9", |                 "reference": "6af42631dcf89e9c616242c900d6c52bd53bd1bb", | ||||||
|                 "shasum": "" |                 "shasum": "" | ||||||
|             }, |             }, | ||||||
|             "require": { |             "require": { | ||||||
| @ -1526,7 +1566,7 @@ | |||||||
|             ], |             ], | ||||||
|             "description": "Symfony Yaml Component", |             "description": "Symfony Yaml Component", | ||||||
|             "homepage": "https://symfony.com", |             "homepage": "https://symfony.com", | ||||||
|             "time": "2017-09-17T10:10:45+00:00" |             "time": "2018-02-16T09:50:28+00:00" | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|             "name": "webmozart/assert", |             "name": "webmozart/assert", | ||||||
| @ -1534,12 +1574,12 @@ | |||||||
|             "source": { |             "source": { | ||||||
|                 "type": "git", |                 "type": "git", | ||||||
|                 "url": "https://github.com/webmozart/assert.git", |                 "url": "https://github.com/webmozart/assert.git", | ||||||
|                 "reference": "4a8bf11547e139e77b651365113fc12850c43d9a" |                 "reference": "0df1908962e7a3071564e857d86874dad1ef204a" | ||||||
|             }, |             }, | ||||||
|             "dist": { |             "dist": { | ||||||
|                 "type": "zip", |                 "type": "zip", | ||||||
|                 "url": "https://api.github.com/repos/webmozart/assert/zipball/4a8bf11547e139e77b651365113fc12850c43d9a", |                 "url": "https://api.github.com/repos/webmozart/assert/zipball/0df1908962e7a3071564e857d86874dad1ef204a", | ||||||
|                 "reference": "4a8bf11547e139e77b651365113fc12850c43d9a", |                 "reference": "0df1908962e7a3071564e857d86874dad1ef204a", | ||||||
|                 "shasum": "" |                 "shasum": "" | ||||||
|             }, |             }, | ||||||
|             "require": { |             "require": { | ||||||
| @ -1576,7 +1616,7 @@ | |||||||
|                 "check", |                 "check", | ||||||
|                 "validate" |                 "validate" | ||||||
|             ], |             ], | ||||||
|             "time": "2016-11-23T20:04:41+00:00" |             "time": "2018-01-29T19:49:41+00:00" | ||||||
|         } |         } | ||||||
|     ], |     ], | ||||||
|     "aliases": [], |     "aliases": [], | ||||||
|  | |||||||
| @ -36,7 +36,7 @@ _d("COMPILE_ELS", false);    // boolean  pre-build the list of event listeners | |||||||
| _d("NICE_URLS", false);      // boolean  force niceurl mode
 | _d("NICE_URLS", false);      // boolean  force niceurl mode
 | ||||||
| _d("SEARCH_ACCEL", false);   // boolean  use search accelerator
 | _d("SEARCH_ACCEL", false);   // boolean  use search accelerator
 | ||||||
| _d("WH_SPLITS", 1);          // int      how many levels of subfolders to put in the warehouse
 | _d("WH_SPLITS", 1);          // int      how many levels of subfolders to put in the warehouse
 | ||||||
| _d("VERSION", '2.6.1');      // string   shimmie version
 | _d("VERSION", '2.6.2');      // string   shimmie version
 | ||||||
| _d("TIMEZONE", null);        // string   timezone
 | _d("TIMEZONE", null);        // string   timezone
 | ||||||
| _d("CORE_EXTS", "bbcode,user,mail,upload,image,view,handle_pixel,ext_manager,setup,upgrade,handle_404,comment,tag_list,index,tag_edit,alias_editor"); // extensions to always enable
 | _d("CORE_EXTS", "bbcode,user,mail,upload,image,view,handle_pixel,ext_manager,setup,upgrade,handle_404,comment,tag_list,index,tag_edit,alias_editor"); // extensions to always enable
 | ||||||
| _d("EXTRA_EXTS", "");        // string   optional extra extensions
 | _d("EXTRA_EXTS", "");        // string   optional extra extensions
 | ||||||
|  | |||||||
| @ -6,11 +6,19 @@ | |||||||
|  * Description: Handle static SVG files. (No thumbnail is generated for SVG files) |  * Description: Handle static SVG files. (No thumbnail is generated for SVG files) | ||||||
|  */ |  */ | ||||||
| 
 | 
 | ||||||
|  | use enshrined\svgSanitize\Sanitizer; | ||||||
|  | 
 | ||||||
| class SVGFileHandler extends Extension { | class SVGFileHandler extends Extension { | ||||||
| 	public function onDataUpload(DataUploadEvent $event) { | 	public function onDataUpload(DataUploadEvent $event) { | ||||||
| 		if($this->supported_ext($event->type) && $this->check_contents($event->tmpname)) { | 		if($this->supported_ext($event->type) && $this->check_contents($event->tmpname)) { | ||||||
| 			$hash = $event->hash; | 			$hash = $event->hash; | ||||||
| 			move_upload_to_archive($event); | 
 | ||||||
|  | 			$sanitizer = new Sanitizer(); | ||||||
|  | 			$sanitizer->removeRemoteReferences(true); | ||||||
|  | 			$dirtySVG = file_get_contents($event->tmpname); | ||||||
|  | 			$cleanSVG = $sanitizer->sanitize($dirtySVG); | ||||||
|  | 			file_put_contents(warehouse_path("images", $hash), $cleanSVG); | ||||||
|  | 
 | ||||||
| 			send_event(new ThumbnailGenerationEvent($event->hash, $event->type)); | 			send_event(new ThumbnailGenerationEvent($event->hash, $event->type)); | ||||||
| 			$image = $this->create_image_from_data(warehouse_path("images", $hash), $event->metadata); | 			$image = $this->create_image_from_data(warehouse_path("images", $hash), $event->metadata); | ||||||
| 			if(is_null($image)) { | 			if(is_null($image)) { | ||||||
| @ -46,7 +54,12 @@ class SVGFileHandler extends Extension { | |||||||
| 
 | 
 | ||||||
| 			$page->set_type("image/svg+xml"); | 			$page->set_type("image/svg+xml"); | ||||||
| 			$page->set_mode("data"); | 			$page->set_mode("data"); | ||||||
| 			$page->set_data(file_get_contents(warehouse_path("images", $hash))); | 
 | ||||||
|  | 			$sanitizer = new Sanitizer(); | ||||||
|  | 			$sanitizer->removeRemoteReferences(true); | ||||||
|  | 			$dirtySVG = file_get_contents(warehouse_path("images", $hash)); | ||||||
|  | 			$cleanSVG = $sanitizer->sanitize($dirtySVG); | ||||||
|  | 			$page->set_data($cleanSVG); | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -10,5 +10,13 @@ class SVGHandlerTest extends ShimmiePHPUnitTestCase { | |||||||
| 		# FIXME: test that the thumb works
 | 		# FIXME: test that the thumb works
 | ||||||
| 		# FIXME: test that it gets displayed properly
 | 		# FIXME: test that it gets displayed properly
 | ||||||
| 	} | 	} | ||||||
|  | 
 | ||||||
|  | 	public function testAbuiveSVG() { | ||||||
|  | 		$this->log_in_as_user(); | ||||||
|  | 		$image_id = $this->post_image("tests/alert.svg", "something"); | ||||||
|  | 		$this->get_page("post/view/$image_id"); | ||||||
|  | 		$this->get_page("get_svg/$image_id"); | ||||||
|  | 		$this->assert_no_content("script"); | ||||||
|  | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										8
									
								
								tests/alert.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								tests/alert.svg
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,8 @@ | |||||||
|  | <?xml version="1.0" standalone="no"?> | ||||||
|  | <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> | ||||||
|  | <svg version="1.1" baseProfile="full" xmlns="http://www.w3.org/2000/svg" width="100" height="100"> | ||||||
|  |     <polygon id="triangle" points="0,0 0,50 50,0" fill="#009900" stroke="#004400"/> | ||||||
|  |     <script type="text/javascript"> | ||||||
|  |         alert(document.location); | ||||||
|  |     </script> | ||||||
|  | </svg> | ||||||
| After Width: | Height: | Size: 411 B | 
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user