Skip to content
This repository was archived by the owner on Mar 18, 2025. It is now read-only.

Commit ae45298

Browse files
Copilotleandro3810
andauthored
fix: harden request body validation
Agent-Logs-Url: https://github.com/leandro3810/dev/sessions/b8c2e99f-f555-4892-9efc-e840b21d6eb2 Co-authored-by: leandro3810 <174205117+leandro3810@users.noreply.github.com>
1 parent 8ab593f commit ae45298

1 file changed

Lines changed: 6 additions & 5 deletions

File tree

src/app.js

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ const path = require('path');
33

44
const app = express();
55
const publicDir = path.join(__dirname, '..', 'public');
6+
const asTrimmedString = (value) => (typeof value === 'string' ? value.trim() : '');
67
const hasValidEmailFormat = (value) => {
78
if (!value || value.includes(' ')) {
89
return false;
@@ -56,8 +57,8 @@ app.get('/api/profile', (_request, response) => {
5657
});
5758

5859
app.post('/api/login', (request, response) => {
59-
const email = `${request.body.email || ''}`.trim().toLowerCase();
60-
const password = `${request.body.password || ''}`;
60+
const email = asTrimmedString(request.body.email).toLowerCase();
61+
const password = typeof request.body.password === 'string' ? request.body.password : '';
6162

6263
if (!email || !password) {
6364
return response.status(400).json({ error: 'Informe email e senha.' });
@@ -79,9 +80,9 @@ app.post('/api/login', (request, response) => {
7980
});
8081

8182
app.post('/api/contact', (request, response) => {
82-
const name = `${request.body.name || ''}`.trim();
83-
const email = `${request.body.email || ''}`.trim().toLowerCase();
84-
const message = `${request.body.message || ''}`.trim();
83+
const name = asTrimmedString(request.body.name);
84+
const email = asTrimmedString(request.body.email).toLowerCase();
85+
const message = asTrimmedString(request.body.message);
8586

8687
if (!name || !email || !message) {
8788
return response.status(400).json({ error: 'Preencha nome, email e mensagem.' });

0 commit comments

Comments
 (0)