Manjo zero de php.

Mas pelo que vi do código, acho que dá pra fazer umas SQL Injection. Isso é uma vunerabilidade grave.

O que quero dizer é o seguinte, tu tem a query (peguei esse de exemplo, mas c tem várias nesse modelo): SELECT * FROM postagens WHERE author_id = $userID ORDER BY post_date DESC;

Se você não tiver cuidado com o tratamento do dado $userID, o teu usuário pode mandar uma string ao invés de um valor numérico. Aí vamo supor que ele manda '' or 1.

A busca vai ficar assim: SELECT * FROM postagens WHERE author_id = '' or 1 ORDER BY post_date DESC; E o resultado dessa busca são todas as postagens independente do usuário.

Eu ia até testar, porque pode ser que o tratamento exista, só que não identifiquei, mas não achei nenhum link publicado do seu site.

Eu já pensei nisso, e pelo que eu aprendi por enquanto, para evitar SQL injection, eu preciso filtrar os dados que o usuário inseriu dentro do input, então existe uma função chamada de "validate".

Ainda não testei as vunerabilidade, pós não manjo muito, mas tenho um contato que sabe sofre segurança, e pretendo pedir para ele fazer uns testes.

A forma correta de blindar seu código contra SQL Injection é utilizando prepared statements. Vi no código que você já utiliza o PDO para se conectar ao banco, portanto basta algumas alterações no seu código. Por exemplo a sua função `deletePostByID()` ficaria assim: ``` function deletePostByID($id) { $connect = dbConnect(); $sql = "DELETE FROM postagens WHERE post_id = :id"; $statement = $connect->prepare($sql); $statement->execute(['id'=>$id]) // como extra, eu verificaria se algum post foi deletado de fato, retornando um booleano return $statement->rowCount() > 0; } ```
Valeu Elias, adicionei o prepared statements na minha lista de estudos.