LINUX.ORG.RU

Postgresql Perl SQL-injection


0

1
sub delete {
    my $self      = shift;
    my $dbh       = shift;
    my $statement = "DELETE FROM typework WHERE id = ? ";
    my $sth       = $dbh->prepare($statement);
    my $rv        = $sth->execute( $self->id ) || $self->result_sql("false");
    return $self->json;
}

DBD::Pg::st execute failed: ERROR: invalid input syntax for integer: «5;select+version()::int--»
at /xxxx/Typework.pm line 150.

Данный код не подвержен SQL-injection? При любом вводе хочет integer.

Со строками так же не будет проблем в других SQL-запросах?

★★

> Данный код не подвержен SQL-injection?

Со строками так же не будет проблем в других SQL-запросах?

Не подвержен.

Также.

Вы на уровне кода в этом примере разделяете SQL и данные к SQL-ю.

gandjubas
()

Единственная вещь, которую стоило бы поменять - это не готовить (prepare) запрос каждый раз. Т.к. подготовленные запросы позволяют ускорить программу за счет отсутствия необходимости в повторном разборе sql.

olegk ★★
()

Немного оффтопик - советую посмотреть на проект greensql

pinachet ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.