Step 3: Finding calls to the jQuery $ function
You will now run a simple CodeQL query, to understand its basic concepts and get familiar with your IDE.
⌨️ Activity: Run a CodeQL query
-
Edit the file calls-to-dollar.ql with the following contents:
import javascript
from CallExpr dollarCall
where dollarCall.getCalleeName() = "$"
select dollarCall
Don't copy / paste this code, but instead type it slowly. You will see the CodeQL auto-complete suggestions in your IDE as you type.
- After typing
from and the first letters of CallExpr, the IDE will propose a list of available classes from the CodeQL library for JavaScript. This is a good way to discover what classes are available to represent standard patterns in the source code.
- After typing
where dollarCall. the IDE will propose a list of available predicates that you can call on the variable dollarCall.
- Type the first letters of
getCalleeName() to narrow down the list.
- Move your cursor to a predicate name in the list to see its documentation. This is a good way to discover what predicates are available and what they mean.
- A function call is called a
CallExpr in the CodeQL JavaScript library.
- We use the
= operator to assert that two values are equal.
-
Run this query: Right-click on the query editor, then click CodeQL: Run Query.
-
Inspect the results appearing in the results panel. Click on the result hyperlinks to navigate to the corresponding locations in the Bootstrap code. Do you understand what this query does? You probably guessed it! This query finds all calls to the function named $.
Now it's time to submit your query. You will have 2 choices to do that, and we'll explain both of them in the comments below. Once you have chosen your method, submit your answer!
Read carefully: you will need to follow the same steps to submit your answers to later steps. You can always come back to this issue later to check the submission instructions.
Step 3: Finding calls to the jQuery
$functionYou will now run a simple CodeQL query, to understand its basic concepts and get familiar with your IDE.
⌨️ Activity: Run a CodeQL query
Edit the file
calls-to-dollar.qlwith the following contents:Don't copy / paste this code, but instead type it slowly. You will see the CodeQL auto-complete suggestions in your IDE as you type.
fromand the first letters ofCallExpr, the IDE will propose a list of available classes from the CodeQL library for JavaScript. This is a good way to discover what classes are available to represent standard patterns in the source code.where dollarCall.the IDE will propose a list of available predicates that you can call on the variabledollarCall.getCalleeName()to narrow down the list.CallExprin the CodeQL JavaScript library.=operator to assert that two values are equal.Run this query: Right-click on the query editor, then click CodeQL: Run Query.
Inspect the results appearing in the results panel. Click on the result hyperlinks to navigate to the corresponding locations in the Bootstrap code. Do you understand what this query does? You probably guessed it! This query finds all calls to the function named
$.Now it's time to submit your query. You will have 2 choices to do that, and we'll explain both of them in the comments below. Once you have chosen your method, submit your answer!
Read carefully: you will need to follow the same steps to submit your answers to later steps. You can always come back to this issue later to check the submission instructions.