fix: Parse Server option fileExtensions default value rejects file extensions that are less than 3 or more than 4 characters long (#8699)
This commit is contained in:
@@ -1364,6 +1364,18 @@ describe('Parse.File testing', () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('default should allow common types', async () => {
|
||||||
|
await reconfigureServer({
|
||||||
|
fileUpload: {
|
||||||
|
enableForPublic: true,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
for (const type of ['plain', 'txt', 'png', 'jpg', 'gif', 'doc']) {
|
||||||
|
const file = new Parse.File(`parse-server-logo.${type}`, { base64: 'ParseA==' });
|
||||||
|
await file.save();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
it('works with a period in the file name', async () => {
|
it('works with a period in the file name', async () => {
|
||||||
await reconfigureServer({
|
await reconfigureServer({
|
||||||
fileUpload: {
|
fileUpload: {
|
||||||
|
|||||||
@@ -1022,9 +1022,9 @@ module.exports.FileUploadOptions = {
|
|||||||
fileExtensions: {
|
fileExtensions: {
|
||||||
env: 'PARSE_SERVER_FILE_UPLOAD_FILE_EXTENSIONS',
|
env: 'PARSE_SERVER_FILE_UPLOAD_FILE_EXTENSIONS',
|
||||||
help:
|
help:
|
||||||
"Sets the allowed file extensions for uploading files. The extension is defined as an array of file extensions, or a regex pattern.<br><br>It is recommended to restrict the file upload extensions as much as possible. HTML files are especially problematic as they may be used by an attacker who uploads a HTML form to look legitimate under your app's domain name, or to compromise the session token of another user via accessing the browser's local storage.<br><br>Defaults to `^[^hH][^tT][^mM][^lL]?$` which allows any file extension except HTML files.",
|
"Sets the allowed file extensions for uploading files. The extension is defined as an array of file extensions, or a regex pattern.<br><br>It is recommended to restrict the file upload extensions as much as possible. HTML files are especially problematic as they may be used by an attacker who uploads a HTML form to look legitimate under your app's domain name, or to compromise the session token of another user via accessing the browser's local storage.<br><br>Defaults to `^(?!(h|H)(t|T)(m|M)(l|L)?$)` which allows any file extension except HTML files.",
|
||||||
action: parsers.arrayParser,
|
action: parsers.arrayParser,
|
||||||
default: ['^[^hH][^tT][^mM][^lL]?$'],
|
default: ['^(?!(h|H)(t|T)(m|M)(l|L)?$)'],
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
module.exports.DatabaseOptions = {
|
module.exports.DatabaseOptions = {
|
||||||
|
|||||||
@@ -229,7 +229,7 @@
|
|||||||
* @property {Boolean} enableForAnonymousUser Is true if file upload should be allowed for anonymous users.
|
* @property {Boolean} enableForAnonymousUser Is true if file upload should be allowed for anonymous users.
|
||||||
* @property {Boolean} enableForAuthenticatedUser Is true if file upload should be allowed for authenticated users.
|
* @property {Boolean} enableForAuthenticatedUser Is true if file upload should be allowed for authenticated users.
|
||||||
* @property {Boolean} enableForPublic Is true if file upload should be allowed for anyone, regardless of user authentication.
|
* @property {Boolean} enableForPublic Is true if file upload should be allowed for anyone, regardless of user authentication.
|
||||||
* @property {String[]} fileExtensions Sets the allowed file extensions for uploading files. The extension is defined as an array of file extensions, or a regex pattern.<br><br>It is recommended to restrict the file upload extensions as much as possible. HTML files are especially problematic as they may be used by an attacker who uploads a HTML form to look legitimate under your app's domain name, or to compromise the session token of another user via accessing the browser's local storage.<br><br>Defaults to `^[^hH][^tT][^mM][^lL]?$` which allows any file extension except HTML files.
|
* @property {String[]} fileExtensions Sets the allowed file extensions for uploading files. The extension is defined as an array of file extensions, or a regex pattern.<br><br>It is recommended to restrict the file upload extensions as much as possible. HTML files are especially problematic as they may be used by an attacker who uploads a HTML form to look legitimate under your app's domain name, or to compromise the session token of another user via accessing the browser's local storage.<br><br>Defaults to `^(?!(h|H)(t|T)(m|M)(l|L)?$)` which allows any file extension except HTML files.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -576,8 +576,8 @@ export interface PasswordPolicyOptions {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export interface FileUploadOptions {
|
export interface FileUploadOptions {
|
||||||
/* Sets the allowed file extensions for uploading files. The extension is defined as an array of file extensions, or a regex pattern.<br><br>It is recommended to restrict the file upload extensions as much as possible. HTML files are especially problematic as they may be used by an attacker who uploads a HTML form to look legitimate under your app's domain name, or to compromise the session token of another user via accessing the browser's local storage.<br><br>Defaults to `^[^hH][^tT][^mM][^lL]?$` which allows any file extension except HTML files.
|
/* Sets the allowed file extensions for uploading files. The extension is defined as an array of file extensions, or a regex pattern.<br><br>It is recommended to restrict the file upload extensions as much as possible. HTML files are especially problematic as they may be used by an attacker who uploads a HTML form to look legitimate under your app's domain name, or to compromise the session token of another user via accessing the browser's local storage.<br><br>Defaults to `^(?!(h|H)(t|T)(m|M)(l|L)?$)` which allows any file extension except HTML files.
|
||||||
:DEFAULT: ["^[^hH][^tT][^mM][^lL]?$"] */
|
:DEFAULT: ["^(?!(h|H)(t|T)(m|M)(l|L)?$)"] */
|
||||||
fileExtensions: ?(string[]);
|
fileExtensions: ?(string[]);
|
||||||
/* Is true if file upload should be allowed for anonymous users.
|
/* Is true if file upload should be allowed for anonymous users.
|
||||||
:DEFAULT: false */
|
:DEFAULT: false */
|
||||||
|
|||||||
Reference in New Issue
Block a user