Skip to content

Commit d0da83d

Browse files
committed
disallow some special characters in item name/categ/desc
1 parent a20ab17 commit d0da83d

File tree

3 files changed

+43
-5
lines changed

3 files changed

+43
-5
lines changed

src/pages/AddItem.js

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,17 +85,38 @@ const AddItem = (props) => {
8585

8686
let imgString = "";
8787

88+
const newName = e.target.newName.value;
89+
const newCateg = e.target.newCateg.value;
90+
const newDesc = e.target.newDesc.value != null ? e.target.newDesc.value : "";
91+
8892
// disallow leading/trailing spaces in names & categories
89-
if (/^\s/.test(e.target.newName.value) || /\s$/.test(e.target.newName.value)) {
93+
if (/^\s/.test(newName) || /\s$/.test(newName)) {
9094
setWarning("No trailing or leading whitespaces allowed in item name.");
9195
setSubmitting(false);
9296
return;
9397
}
94-
if (/^\s/.test(e.target.newCateg.value) || /\s$/.test(e.target.newCateg.value)) {
98+
if (/^\s/.test(newCateg) || /\s$/.test(newCateg)) {
9599
setWarning("No trailing or leading whitespaces allowed in item category.");
96100
setSubmitting(false);
97101
return;
98102
}
103+
104+
// disallow some special characters
105+
if (/["\\/{};<>`]/.test(newName)) {
106+
setWarning(`The special characters "\\/{};<>\` are not allowed in item name.`);
107+
setSubmitting(false);
108+
return;
109+
}
110+
if (/["\\/{};<>`]/.test(newCateg)) {
111+
setWarning(`The special characters "\\/{};<>\` are not allowed in item category.`);
112+
setSubmitting(false);
113+
return;
114+
}
115+
if (/["\\/{};<>`]/.test(newDesc)) {
116+
setWarning(`The special characters "\\/{};<>\` are not allowed in item description.`);
117+
setSubmitting(false);
118+
return;
119+
}
99120

100121
if (itemImg !== null) {
101122
imgString = await new Promise((resolve) => {

src/pages/ItemEdit.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,23 @@ const ItemEdit = (props) => {
9090
setSubmitting(false);
9191
return;
9292
}
93+
94+
// disallow some special characters
95+
if (/["\\/{};<>`]/.test(newName)) {
96+
setWarning(`The special characters "\\/{};<>\` are not allowed in item name.`);
97+
setSubmitting(false);
98+
return;
99+
}
100+
if (/["\\/{};<>`]/.test(newCateg)) {
101+
setWarning(`The special characters "\\/{};<>\` are not allowed in item category.`);
102+
setSubmitting(false);
103+
return;
104+
}
105+
if (/["\\/{};<>`]/.test(newDesc)) {
106+
setWarning(`The special characters "\\/{};<>\` are not allowed in item description.`);
107+
setSubmitting(false);
108+
return;
109+
}
93110

94111
// convert any new images into base64 string
95112
if (itemImg !== null) {

src/utils/itemHelpers.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,9 +92,9 @@ const saveItem = async (e, itemId, categList, setCategList, imgString, uid, newI
9292
being_loaned: false, loan_frequency: 0
9393
} : { _id: itemId } ;
9494
if (imgString !== "") formData.image_enc = imgString;
95-
if (newName !== "") formData.item_name = newName.replace(/["'\\/{}<>`]/g,"");
96-
if (newCateg !== "") formData.category = newCateg.replace(/["'\\/{}<>`]/g,"");
97-
formData.description = newDesc.replace(/["'\\/{}<>`]/g,"");
95+
if (newName !== "") formData.item_name = newName;
96+
if (newCateg !== "") formData.category = newCateg;
97+
formData.description = newDesc;
9898

9999
// If new category not currently in user's available categories, put a request to user to add it
100100
if (formData.category !== "" && !(categList.includes(formData.category))) {

0 commit comments

Comments
 (0)