Skip to content

Commit 3d3e6c0

Browse files
Fix prototype-polluting assignment in ra-data-localstorage
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
1 parent 5a5d410 commit 3d3e6c0

File tree

1 file changed

+9
-0
lines changed
  • packages/ra-data-local-storage/src

1 file changed

+9
-0
lines changed

packages/ra-data-local-storage/src/index.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,9 @@ export default (params?: LocalStorageDataProviderParams): DataProvider => {
110110
return baseDataProvider.update<RecordType>(resource, params);
111111
},
112112
updateMany: (resource, params) => {
113+
if (['__proto__', 'constructor', 'prototype'].includes(resource)) {
114+
throw new Error(`Invalid resource key: ${resource}`);
115+
}
113116
updateLocalStorage(() => {
114117
params.ids.forEach(id => {
115118
const index = data[resource]?.findIndex(
@@ -141,6 +144,9 @@ export default (params?: LocalStorageDataProviderParams): DataProvider => {
141144
});
142145
},
143146
delete: <RecordType extends RaRecord = any>(resource, params) => {
147+
if (['__proto__', 'constructor', 'prototype'].includes(resource)) {
148+
throw new Error(`Invalid resource key: ${resource}`);
149+
}
144150
updateLocalStorage(() => {
145151
const index = data[resource]?.findIndex(
146152
record => record.id == params.id
@@ -150,6 +156,9 @@ export default (params?: LocalStorageDataProviderParams): DataProvider => {
150156
return baseDataProvider.delete<RecordType>(resource, params);
151157
},
152158
deleteMany: (resource, params) => {
159+
if (['__proto__', 'constructor', 'prototype'].includes(resource)) {
160+
throw new Error(`Invalid resource key: ${resource}`);
161+
}
153162
updateLocalStorage(() => {
154163
const indexes = params.ids.map(id =>
155164
data[resource]?.findIndex(record => record.id == id)

0 commit comments

Comments
 (0)