Ich habe gegenüber der zweiten Ordnung SQL-Injection in diesem folgenden CodeWie SQL zweiter Ordnung Injektionen in Java (Frühjahr Application)
if(subjectId!=null){Query query= sessionFactory
.getCurrentSession()
.createSQLQuery(HubQueryConstants.GET_QUERY)
.setParameter(MyConstants.SUBJECT_ID, subjectId)
.setFirstResult(offset)
.setMaxResults(limit)
.setResultTransformer(
Transformers.aliasToBean(MyClass.class));}
My Constant-Datei ist zu verhindern:
Constant Datei Abschlussklasse
GET_QUERY="Select * from MyClass where id=:id ";
obwohl es in statischer Abfrage standardmäßig immer noch mein Sicherheitsbericht ist, wird es als zweite Ordnung SQL-Injektion geben
Sollen wir Konstanten in der Schnittstelle deklarieren? um Sicherheitsprobleme zu vermeiden?
ich mit Ihrem Sicherheits Bericht falsch ist, sagen würde. – Andreas
Ich denke, das Problem ist, dass Sie SQL in den ID-Parameter Ihrer Abfrage injizieren können. Aber da Sie Hibernate verwenden (ich vermute), wird Ihre Anfrage in ein preparedStement übersetzt. Du solltest also sicher sein. – EisenRatte
Ich verwende Sql-Abfrage im obigen Snippet, obwohl ich HQL-Abfrage verwende, zeigt mein Bericht SQL-Injektion zweiter Ordnung –