@hclsoftware/secagent
Version:
IAST agent
55 lines (46 loc) • 1.59 kB
JavaScript
//IASTIGNORE
/*
* ****************************************************
* Licensed Materials - Property of HCL.
* (c) Copyright HCL Technologies Ltd. 2017, 2025.
* Note to U.S. Government Users *Restricted Rights.
* ****************************************************
*/
'use strict'
const TaskType = require('./TaskType')
class ParameterUnderTest{
constructor (param, taskList){
this.taskList = taskList
this.originalParam = param
this.originalProcessedParam = this.getProcessedParam(this.originalParam);
}
mutate(mutagen){
return [this.originalParam, mutagen, this.originalParam].origJoin('');
}
getProcessedParam(param){
if(this.taskList == null){return param}
let tempParam = param
for (const task of this.taskList){
tempParam = task.performAction(tempParam)
if(task.taskType === TaskType.VALIDATION && !task.isVerified){
return null
}
}
return tempParam
}
getMutatedProcessedParam(mutagen) {
let beforeProcessing = this.mutate(mutagen)
return {
beforeProcessing : beforeProcessing,
afterProcessing : this.getProcessedParam(beforeProcessing)
}
}
setOriginalParamPlaceholder(){
this.getProcessedParamoriginalParam = "IAST"
this.originalProcessedParam = getProcessedParam("IAST");
}
emptyTaskList() {
return this.taskList!=null && this.taskList.length === 0;
}
}
module.exports.ParameterUnderTest = ParameterUnderTest