Skip to content

ABAP Keyword Documentation →  ABAP - Security Notes →  Further Security Risks 

Insufficient Authorization Checks

Adequate authorization checks are an important part of secure ABAP programming. In many statements, an appropriate authorization check is performed implicitly, for example:

There are, however, many critical statements where no implicit authorization checks are performed, for example:

  • SQL reads performed on database tables

Any places in a program that a user can reach without sufficient authorizations and where no implicit authorization check takes place must be secured explicitly using the statement AUTHORITY-CHECK and the result of the check analyzed carefully.

A prerequisite for both implicit and explicit authorization checks is that all components required for the SAP authorization concept, such as authorizations, authorization objects, authorization objects, and so on are defined. Care must also be taken to set the check indicator correctly, to enable all required checks to take place.

Other versions: 7.31 | 7.40 | 7.54


Example

Checks explicitly whether the current user can create temporary programs. This check could be used to secure the ABAP command injections example.

AUTHORITY-CHECK OBJECT 'S_DEVELOP'
  ID 'DEVCLASS' FIELD '$TMP'
  ID 'OBJTYPE'  FIELD 'PROG'
  ID 'OBJNAME'  DUMMY
  ID 'P_GROUP'  DUMMY
  ID 'ACTVT'    FIELD '02'.
IF sy-subrc <> 0.
  LEAVE PROGRAM.
ENDIF.