{"id":89648,"date":"2025-02-15T12:22:23","date_gmt":"2025-02-15T12:22:23","guid":{"rendered":"https:\/\/peraltafinancing.com\/business\/internet-business\/automated-security-check-against-injected-malicious-javascript\/"},"modified":"2025-02-15T12:22:23","modified_gmt":"2025-02-15T12:22:23","slug":"automated-security-check-against-injected-malicious-javascript","status":"publish","type":"post","link":"https:\/\/fivemor.com\/?p=89648","title":{"rendered":"Automated security check against injected malicious JavaScript"},"content":{"rendered":"<p> <br \/>\n<\/p>\n<p>Posted on September 10, 2021, 1:23 pm, by Robert Mangiafico. <\/p>\n<div>\n<p>From time to time we have guest posts on the blog. Today\u2019s post is from Konstantin Gerasimov at goivvy.com.<\/p>\n<p>E-commerce sites can suffer from hackers injecting pieces of JavaScript to sniff credit card or other sensitive data.<\/p>\n<p>It\u2019s usually a checkout page with payment forms where JS code could be placed.<\/p>\n<p>There is a simple yet effective way to catch it.<\/p>\n<p>You store the original checkout page HTML and then regularly compare your current checkout page against \u2018the gold standard\u2019.<\/p>\n<p>In this article I\u2019ll describe one way of automating this security check using a $10 linux box.<\/p>\n<p>\u00a0<\/p>\n<p>\u00a0<\/p>\n<p>We will use a <a href=\"https:\/\/www.goivvy.com\">Magento 2<\/a> e-commerce site as an example.<\/p>\n<p>The script will visit the website, add an item to the cart, proceed to checkout and compare the checkout page HTML against the template we have stored on the server.<\/p>\n<p>If there is a mismatch, it indicates the page has been altered and needs to be reviewed.<\/p>\n<p>\u00a0<\/p>\n<p>\u00a0<\/p>\n<p>We will use a 2G RAM linux box running Debian 10.<\/p>\n<h3>1.1 Facebook\/Webdriver<\/h3>\n<p>Firstly, we need to install facebook\/webdriver. That\u2019s a PHP wrapper to work with a browser.<\/p>\n<div class=\"wp_syntax\" style=\"position:relative;\">\n<table>\n<tr>\n<td class=\"line_numbers\">\n<pre>1\n2\n3\n4\n5\n<\/pre>\n<\/td>\n<td class=\"code\">\n<pre class=\"php\" style=\"font-family:monospace;\">sudo apt update\nsudo apt<span style=\"color: #339933;\">-<\/span>get install composer\n<span style=\"color: #990000;\">mkdir<\/span> <span style=\"color: #339933;\">\/<\/span>home<span style=\"color: #339933;\">\/<\/span>username<span style=\"color: #339933;\">\/<\/span>security <span style=\"color: #339933;\">&amp;&amp;<\/span> cd <span style=\"color: #339933;\">\/<\/span>home<span style=\"color: #339933;\">\/<\/span>username<span style=\"color: #339933;\">\/<\/span>security\nsudo apt<span style=\"color: #339933;\">-<\/span>get install php<span style=\"color: #339933;\">-<\/span>cli php<span style=\"color: #339933;\">-<\/span>zip unzip wget php<span style=\"color: #339933;\">-<\/span>curl\ncomposer <span style=\"color: #b1b100;\">require<\/span> facebook<span style=\"color: #339933;\">\/<\/span>webdriver<\/pre>\n<\/td>\n<\/tr>\n<\/table>\n<p class=\"theCode\" style=\"display:none;\">sudo apt update<br \/>sudo apt-get install composer<br \/>mkdir \/home\/username\/security &amp;&amp; cd \/home\/username\/security<br \/>sudo apt-get install php-cli php-zip unzip wget php-curl<br \/>composer require facebook\/webdriver<\/p>\n<\/div>\n<h3>1.2 Google Chrome Browser<\/h3>\n<p>Next, we will install a google chrome web browser:<\/p>\n<div class=\"wp_syntax\" style=\"position:relative;\">\n<table>\n<tr>\n<td class=\"line_numbers\">\n<pre>1\n2\n<\/pre>\n<\/td>\n<td class=\"code\">\n<pre class=\"php\" style=\"font-family:monospace;\">wget https<span style=\"color: #339933;\">:<\/span><span style=\"color: #666666; font-style: italic;\">\/\/dl.google.com\/linux\/direct\/google-chrome-stable_current_amd64.deb<\/span>\napt<span style=\"color: #339933;\">-<\/span>get install <span style=\"color: #339933;\">.\/<\/span>google<span style=\"color: #339933;\">-<\/span>chrome<span style=\"color: #339933;\">-<\/span>stable_current_amd64<span style=\"color: #339933;\">.<\/span>deb<\/pre>\n<\/td>\n<\/tr>\n<\/table>\n<p class=\"theCode\" style=\"display:none;\">wget https:\/\/dl.google.com\/linux\/direct\/google-chrome-stable_current_amd64.deb<br \/>apt-get install .\/google-chrome-stable_current_amd64.deb<\/p>\n<\/div>\n<p>\u00a0<\/p>\n<h3>1.3 ChromeDriver<\/h3>\n<p>ChromeDriver is a standalone server that can talk to Google Chrome browser.<\/p>\n<p>Versions of ChromeDriver and Google Chrome browser should match.<\/p>\n<div class=\"wp_syntax\" style=\"position:relative;\">\n<table>\n<tr>\n<td class=\"line_numbers\">\n<pre>1\n2\n3\n<\/pre>\n<\/td>\n<td class=\"code\">\n<pre class=\"php\" style=\"font-family:monospace;\">wget https<span style=\"color: #339933;\">:<\/span><span style=\"color: #666666; font-style: italic;\">\/\/chromedriver.storage.googleapis.com\/92.0.4515.107\/chromedriver_linux64.zip<\/span>\nunzip chromedriver_linux64<span style=\"color: #339933;\">.<\/span>zip\nsudo cp chromedriver <span style=\"color: #339933;\">\/<\/span>usr<span style=\"color: #339933;\">\/<\/span>bin<span style=\"color: #339933;\">\/<\/span><\/pre>\n<\/td>\n<\/tr>\n<\/table>\n<p class=\"theCode\" style=\"display:none;\">wget https:\/\/chromedriver.storage.googleapis.com\/92.0.4515.107\/chromedriver_linux64.zip<br \/>unzip chromedriver_linux64.zip<br \/>sudo cp chromedriver \/usr\/bin\/<\/p>\n<\/div>\n<h3>1.4 Xvfb<\/h3>\n<p>Xvfb is a virtual X server. We need it to run Google Chrome properly as we don\u2019t have a monitor connected to our server.<\/p>\n<h3>1.5 PHP script to visit a checkout page<\/h3>\n<p>Below is the script that visits the <a href=\"https:\/\/www.goivvy.com\">Magento 2<\/a> website, adds an item to the cart, proceeds to the checkout and compares the checkout page HTML to what we have stored on the server.<\/p>\n<p>\/home\/username\/security\/check.php:<\/p>\n<div class=\"wp_syntax\" style=\"position:relative;\">\n<table>\n<tr>\n<td class=\"line_numbers\">\n<pre>1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n29\n30\n31\n<\/pre>\n<\/td>\n<td class=\"code\">\n<pre class=\"php\" style=\"font-family:monospace;\"><span style=\"color: #000000; font-weight: bold;\">namespace<\/span> Facebook\\WebDriver<span style=\"color: #339933;\">;<\/span>\n<span style=\"color: #000000; font-weight: bold;\">use<\/span> Facebook\\WebDriver\\Remote\\DesiredCapabilities<span style=\"color: #339933;\">;<\/span>\n<span style=\"color: #000000; font-weight: bold;\">use<\/span> Facebook\\WebDriver\\Remote\\RemoteWebDriver<span style=\"color: #339933;\">;<\/span>\n<span style=\"color: #b1b100;\">require_once<\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #0000ff;\">'vendor\/autoload.php'<\/span><span style=\"color: #009900;\">)<\/span><span style=\"color: #339933;\">;<\/span>\n<span style=\"color: #000088;\">$host<\/span> <span style=\"color: #339933;\">=<\/span> <span style=\"color: #0000ff;\">'http:\/\/localhost:4444\/'<\/span><span style=\"color: #339933;\">;<\/span>\n<span style=\"color: #000088;\">$capabilities<\/span> <span style=\"color: #339933;\">=<\/span> DesiredCapabilities<span style=\"color: #339933;\">::<\/span><span style=\"color: #004000;\">chrome<\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #009900;\">)<\/span><span style=\"color: #339933;\">;<\/span>\n<span style=\"color: #000088;\">$driver<\/span> <span style=\"color: #339933;\">=<\/span> RemoteWebDriver<span style=\"color: #339933;\">::<\/span><span style=\"color: #004000;\">create<\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #000088;\">$host<\/span><span style=\"color: #339933;\">,<\/span> <span style=\"color: #000088;\">$capabilities<\/span><span style=\"color: #009900;\">)<\/span><span style=\"color: #339933;\">;<\/span>\n<span style=\"color: #000088;\">$driver<\/span><span style=\"color: #339933;\">-&gt;<\/span><span style=\"color: #004000;\">get<\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #0000ff;\">'https:\/\/domain.com\/'<\/span><span style=\"color: #009900;\">)<\/span><span style=\"color: #339933;\">;<\/span>\n<span style=\"color: #000088;\">$driver<\/span><span style=\"color: #339933;\">-&gt;<\/span><span style=\"color: #004000;\">wait<\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #009900;\">)<\/span><span style=\"color: #339933;\">-&gt;<\/span><span style=\"color: #004000;\">until<\/span><span style=\"color: #009900;\">(<\/span>\n     WebDriverExpectedCondition<span style=\"color: #339933;\">::<\/span><span style=\"color: #004000;\">titleContains<\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #0000ff;\">'Professional Grade Security'<\/span><span style=\"color: #009900;\">)<\/span>\n<span style=\"color: #009900;\">)<\/span><span style=\"color: #339933;\">;<\/span>\n<span style=\"color: #000088;\">$driver<\/span><span style=\"color: #339933;\">-&gt;<\/span><span style=\"color: #004000;\">wait<\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #009900;\">)<\/span><span style=\"color: #339933;\">-&gt;<\/span><span style=\"color: #004000;\">until<\/span><span style=\"color: #009900;\">(<\/span>\n     WebDriverExpectedCondition<span style=\"color: #339933;\">::<\/span><span style=\"color: #004000;\">elementToBeClickable<\/span><span style=\"color: #009900;\">(<\/span>WebDriverBy<span style=\"color: #339933;\">::<\/span><span style=\"color: #004000;\">cssSelector<\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #0000ff;\">'.action.tocart.primary'<\/span><span style=\"color: #009900;\">)<\/span><span style=\"color: #009900;\">)<\/span>\n<span style=\"color: #009900;\">)<\/span><span style=\"color: #339933;\">;<\/span>\n<span style=\"color: #000088;\">$nextButton<\/span> <span style=\"color: #339933;\">=<\/span> <span style=\"color: #000088;\">$driver<\/span><span style=\"color: #339933;\">-&gt;<\/span><span style=\"color: #004000;\">findElement<\/span><span style=\"color: #009900;\">(<\/span>\n     WebDriverBy<span style=\"color: #339933;\">::<\/span><span style=\"color: #004000;\">cssSelector<\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #0000ff;\">'.action.tocart.primary'<\/span><span style=\"color: #009900;\">)<\/span>\n<span style=\"color: #009900;\">)<\/span><span style=\"color: #339933;\">;<\/span>\n<span style=\"color: #000088;\">$nextButton<\/span><span style=\"color: #339933;\">-&gt;<\/span><span style=\"color: #004000;\">submit<\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #009900;\">)<\/span><span style=\"color: #339933;\">;<\/span>\n<span style=\"color: #000088;\">$driver<\/span><span style=\"color: #339933;\">-&gt;<\/span><span style=\"color: #004000;\">wait<\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #009900;\">)<\/span><span style=\"color: #339933;\">-&gt;<\/span><span style=\"color: #004000;\">until<\/span><span style=\"color: #009900;\">(<\/span>\n     WebDriverExpectedCondition<span style=\"color: #339933;\">::<\/span><span style=\"color: #004000;\">visibilityOfElementLocated<\/span><span style=\"color: #009900;\">(<\/span>WebDriverBy<span style=\"color: #339933;\">::<\/span><span style=\"color: #004000;\">cssSelector<\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #0000ff;\">'.add-to-cart-dialog'<\/span><span style=\"color: #009900;\">)<\/span><span style=\"color: #009900;\">)<\/span>\n<span style=\"color: #009900;\">)<\/span><span style=\"color: #339933;\">;<\/span>\n<span style=\"color: #000088;\">$driver<\/span><span style=\"color: #339933;\">-&gt;<\/span><span style=\"color: #004000;\">get<\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #0000ff;\">'https:\/\/domain.com\/checkout\/'<\/span><span style=\"color: #009900;\">)<\/span><span style=\"color: #339933;\">;<\/span>\n<span style=\"color: #000088;\">$driver<\/span><span style=\"color: #339933;\">-&gt;<\/span><span style=\"color: #004000;\">wait<\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #009900;\">)<\/span><span style=\"color: #339933;\">-&gt;<\/span><span style=\"color: #004000;\">until<\/span><span style=\"color: #009900;\">(<\/span>\n     WebDriverExpectedCondition<span style=\"color: #339933;\">::<\/span><span style=\"color: #004000;\">visibilityOfElementLocated<\/span><span style=\"color: #009900;\">(<\/span>WebDriverBy<span style=\"color: #339933;\">::<\/span><span style=\"color: #004000;\">cssSelector<\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #0000ff;\">'.checkout-shipping-method'<\/span><span style=\"color: #009900;\">)<\/span><span style=\"color: #009900;\">)<\/span>\n<span style=\"color: #009900;\">)<\/span><span style=\"color: #339933;\">;<\/span>\n<span style=\"color: #000088;\">$driver<\/span><span style=\"color: #339933;\">-&gt;<\/span><span style=\"color: #004000;\">get<\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #0000ff;\">'view-source:'<\/span><span style=\"color: #339933;\">.<\/span><span style=\"color: #000088;\">$driver<\/span><span style=\"color: #339933;\">-&gt;<\/span><span style=\"color: #004000;\">getCurrentUrl<\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #009900;\">)<\/span><span style=\"color: #009900;\">)<\/span><span style=\"color: #339933;\">;<\/span>\n<span style=\"color: #000088;\">$paymentPage<\/span> <span style=\"color: #339933;\">=<\/span> <span style=\"color: #000088;\">$driver<\/span><span style=\"color: #339933;\">-&gt;<\/span><span style=\"color: #004000;\">getPageSource<\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #009900;\">)<\/span><span style=\"color: #339933;\">;<\/span>\n<span style=\"color: #000088;\">$old<\/span> <span style=\"color: #339933;\">=<\/span> <span style=\"color: #990000;\">file_get_contents<\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #0000ff;\">'\/home\/username\/security\/payment.html'<\/span><span style=\"color: #009900;\">)<\/span><span style=\"color: #339933;\">;<\/span>\n<span style=\"color: #b1b100;\">if<\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #000088;\">$old<\/span> <span style=\"color: #339933;\">!=<\/span> <span style=\"color: #000088;\">$paymentPage<\/span><span style=\"color: #009900;\">)<\/span>\n<span style=\"color: #b1b100;\">echo<\/span> <span style=\"color: #0000ff;\">'hack'<\/span><span style=\"color: #339933;\">;<\/span>\n<span style=\"color: #000088;\">$driver<\/span><span style=\"color: #339933;\">-&gt;<\/span><span style=\"color: #004000;\">quits<\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #009900;\">)<\/span><span style=\"color: #339933;\">;<\/span><\/pre>\n<\/td>\n<\/tr>\n<\/table>\n<p class=\"theCode\" style=\"display:none;\">namespace Facebook\\WebDriver;<br \/>use Facebook\\WebDriver\\Remote\\DesiredCapabilities;<br \/>use Facebook\\WebDriver\\Remote\\RemoteWebDriver;<br \/>require_once(\u2018vendor\/autoload.php\u2019);<br \/>$host = \u2018http:\/\/localhost:4444\/&#8217;;<br \/>$capabilities = DesiredCapabilities::chrome();<br \/>$driver = RemoteWebDriver::create($host, $capabilities);<br \/>$driver-&gt;get(\u2018https:\/\/domain.com\/\u2019);<br \/>$driver-&gt;wait()-&gt;until(<br \/>WebDriverExpectedCondition::titleContains(\u2018Professional Grade Security\u2019)<br \/>);<br \/>$driver-&gt;wait()-&gt;until(<br \/>WebDriverExpectedCondition::elementToBeClickable(WebDriverBy::cssSelector(\u2018.action.tocart.primary\u2019))<br \/>);<br \/>$nextButton = $driver-&gt;findElement(<br \/>WebDriverBy::cssSelector(\u2018.action.tocart.primary\u2019)<br \/>);<br \/>$nextButton-&gt;submit();<br \/>$driver-&gt;wait()-&gt;until(<br \/>WebDriverExpectedCondition::visibilityOfElementLocated(WebDriverBy::cssSelector(\u2018.add-to-cart-dialog\u2019))<br \/>);<br \/>$driver-&gt;get(\u2018https:\/\/domain.com\/checkout\/\u2019);<br \/>$driver-&gt;wait()-&gt;until(<br \/>WebDriverExpectedCondition::visibilityOfElementLocated(WebDriverBy::cssSelector(\u2018.checkout-shipping-method\u2019))<br \/>);<br \/>$driver-&gt;get(\u2018view-source:\u2019.$driver-&gt;getCurrentUrl());<br \/>$paymentPage = $driver-&gt;getPageSource();<br \/>$old = file_get_contents(\u2018\/home\/username\/security\/payment.html\u2019);<br \/>if($old != $paymentPage)<br \/>echo \u2018hack&#8217;;<br \/>$driver-&gt;quits();<\/p>\n<\/div>\n<h3>1.6 Bash wrapper script<\/h3>\n<p>Here is a final bash wrapper script that starts chromedriver server, Xvfb and executes the checkout PHP script.<\/p>\n<p>\/home\/username\/security\/script.sh:<\/p>\n<div class=\"wp_syntax\" style=\"position:relative;\">\n<table>\n<tr>\n<td class=\"line_numbers\">\n<pre>1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n<\/pre>\n<\/td>\n<td class=\"code\">\n<pre class=\"php\" style=\"font-family:monospace;\"><span style=\"color: #666666; font-style: italic;\">#!\/bin\/bash\n<\/span><span style=\"color: #339933;\">\/<\/span>usr<span style=\"color: #339933;\">\/<\/span>bin<span style=\"color: #339933;\">\/<\/span>Xvfb <span style=\"color: #339933;\">:<\/span><span style=\"color: #cc66cc;\">0<\/span> <span style=\"color: #339933;\">-<\/span>ac <span style=\"color: #339933;\">-<\/span>screen <span style=\"color: #cc66cc;\">0<\/span> 1024x768x24 <span style=\"color: #339933;\">&amp;<\/span>\nDISPLAY<span style=\"color: #339933;\">=:<\/span><span style=\"color: #cc66cc;\">0<\/span> <span style=\"color: #339933;\">\/<\/span>usr<span style=\"color: #339933;\">\/<\/span>bin<span style=\"color: #339933;\">\/<\/span>chromedriver <span style=\"color: #339933;\">--<\/span>port<span style=\"color: #339933;\">=<\/span><span style=\"color: #cc66cc;\">4444<\/span> <span style=\"color: #339933;\">&amp;<\/span>\n<span style=\"color: #990000;\">sleep<\/span> <span style=\"color: #cc66cc;\">5<\/span>\n<span style=\"color: #b1b100;\">echo<\/span> <span style=\"color: #0000ff;\">'running the test'<\/span>\nresponse<span style=\"color: #339933;\">=<\/span>`<span style=\"color: #339933;\">\/<\/span>usr<span style=\"color: #339933;\">\/<\/span>bin<span style=\"color: #339933;\">\/<\/span>php <span style=\"color: #339933;\">\/<\/span>home<span style=\"color: #339933;\">\/<\/span>username<span style=\"color: #339933;\">\/<\/span>security<span style=\"color: #339933;\">\/<\/span>check<span style=\"color: #339933;\">.<\/span>php`\n<span style=\"color: #b1b100;\">echo<\/span> <span style=\"color: #000088;\">$response<\/span>\n<span style=\"color: #b1b100;\">if<\/span> <span style=\"color: #009900;\">[<\/span><span style=\"color: #009900;\">[<\/span> <span style=\"color: #000088;\">$response<\/span> <span style=\"color: #339933;\">=<\/span> <span style=\"color: #0000ff;\">\"hack\"<\/span> <span style=\"color: #009900;\">]<\/span><span style=\"color: #009900;\">]<\/span>\nthen\n<span style=\"color: #b1b100;\">echo<\/span> <span style=\"color: #0000ff;\">'not good'<\/span>\nfi\nkill <span style=\"color: #339933;\">-<\/span><span style=\"color: #cc66cc;\">9<\/span> `pidof chromedriver`\nkill <span style=\"color: #339933;\">-<\/span><span style=\"color: #cc66cc;\">9<\/span> `pidof Xvfb`<\/pre>\n<\/td>\n<\/tr>\n<\/table>\n<p class=\"theCode\" style=\"display:none;\">#!\/bin\/bash<br \/>\/usr\/bin\/Xvfb :0 -ac -screen 0 1024x768x24 &amp;<br \/>DISPLAY=:0 \/usr\/bin\/chromedriver \u2013port=4444 &amp;<br \/>sleep 5<br \/>echo \u2018running the test\u2019<br \/>response=`\/usr\/bin\/php \/home\/username\/security\/check.php`<br \/>echo $response<br \/>if [[ $response = &#8220;hack&#8221; ]]<br \/>then<br \/>echo \u2018not good\u2019<br \/>fi<br \/>kill -9 `pidof chromedriver`<br \/>kill -9 `pidof Xvfb`<\/p>\n<\/div>\n<p>Instead of \u2018echo \u2018not good\u2019\u2019, a simple sendmail command could be placed to send a notification email.<\/p>\n<p>\u2026<\/p>\n<p><span style=\"text-decoration: underline;\"><strong>About the author:<\/strong><\/span> Konstantin Gerasimov is a Magento certified developer with Goivvy.com. He specializes in speed optimization, migration and general Magento support. <!-- WP Biographia v3.3.2 --><\/p>\n<div class=\"wp-biographia-container-around\" style=\"background-color: #FFEAA8; border: 1px solid #000000;\">\n<div class=\"wp-biographia-text-no-pic\">\n<h3><\/h3>\n<p>Looking for a web host that understands ecommerce and business hosting?<br \/><strong><a href=\"https:\/\/www.lexiconn.com\/company\/why_lexiconn.html\">Check us out<\/a><\/strong> today!<\/p>\n<\/div>\n<\/div><\/div>\n\n","protected":false},"excerpt":{"rendered":"<p>Posted on September 10, 2021, 1:23 pm, by Robert Mangiafico. From time to time we have guest posts on the blog. Today\u2019s post is from Konstantin Gerasimov at goivvy.com. E-commerce sites can suffer from hackers injecting pieces of JavaScript to sniff credit card or other sensitive data. It\u2019s usually a checkout page with payment forms [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":4302,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[95],"tags":[16382,855,43553,29091,43554,2764],"dealstore":[],"offerexpiration":[],"class_list":["post-89648","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-internet-business","tag-automated","tag-check","tag-injected","tag-javascript","tag-malicious","tag-security"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Automated security check against injected malicious JavaScript - Som2ny Network<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fivemor.com\/?p=89648\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Automated security check against injected malicious JavaScript - Som2ny Network\" \/>\n<meta property=\"og:description\" content=\"Posted on September 10, 2021, 1:23 pm, by Robert Mangiafico. From time to time we have guest posts on the blog. Today\u2019s post is from Konstantin Gerasimov at goivvy.com. E-commerce sites can suffer from hackers injecting pieces of JavaScript to sniff credit card or other sensitive data. It\u2019s usually a checkout page with payment forms [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fivemor.com\/?p=89648\" \/>\n<meta property=\"og:site_name\" content=\"Som2ny Network\" \/>\n<meta property=\"article:published_time\" content=\"2025-02-15T12:22:23+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/01\/blank.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"200\" \/>\n\t<meta property=\"og:image:height\" content=\"200\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fivemor.com\/?p=89648#article\",\"isPartOf\":{\"@id\":\"https:\/\/fivemor.com\/?p=89648\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371\"},\"headline\":\"Automated security check against injected malicious JavaScript\",\"datePublished\":\"2025-02-15T12:22:23+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fivemor.com\/?p=89648\"},\"wordCount\":618,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fivemor.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/fivemor.com\/?p=89648#primaryimage\"},\"thumbnailUrl\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/01\/blank.jpg\",\"keywords\":[\"Automated\",\"Check\",\"injected\",\"JavaScript\",\"malicious\",\"Security\"],\"articleSection\":[\"Internet Business\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fivemor.com\/?p=89648#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fivemor.com\/?p=89648\",\"url\":\"https:\/\/fivemor.com\/?p=89648\",\"name\":\"Automated security check against injected malicious JavaScript - Som2ny Network\",\"isPartOf\":{\"@id\":\"https:\/\/fivemor.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/fivemor.com\/?p=89648#primaryimage\"},\"image\":{\"@id\":\"https:\/\/fivemor.com\/?p=89648#primaryimage\"},\"thumbnailUrl\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/01\/blank.jpg\",\"datePublished\":\"2025-02-15T12:22:23+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fivemor.com\/?p=89648#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fivemor.com\/?p=89648\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fivemor.com\/?p=89648#primaryimage\",\"url\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/01\/blank.jpg\",\"contentUrl\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/01\/blank.jpg\",\"width\":200,\"height\":200},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fivemor.com\/?p=89648#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/fivemor.com\/?bp_activities=1\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Automated security check against injected malicious JavaScript\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fivemor.com\/#website\",\"url\":\"https:\/\/fivemor.com\/\",\"name\":\"Som2ny Network\",\"description\":\"Daily Deals\",\"publisher\":{\"@id\":\"https:\/\/fivemor.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fivemor.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/fivemor.com\/#organization\",\"name\":\"Som2ny Network\",\"url\":\"https:\/\/fivemor.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fivemor.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2026\/07\/4a0953c4-logo-300x86-1.png\",\"contentUrl\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2026\/07\/4a0953c4-logo-300x86-1.png\",\"width\":300,\"height\":86,\"caption\":\"Som2ny Network\"},\"image\":{\"@id\":\"https:\/\/fivemor.com\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fivemor.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/729ae85bf62b9917e93538db2f2688ca?s=96&r=g&default=https%3A%2F%2Ffivemor.com%2Fwp-content%2Fplugins%2Fbuddypress-first-letter-avatar%2Fimages%2Fdefault%2F96%2Flatin_a.png\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/729ae85bf62b9917e93538db2f2688ca?s=96&r=g&default=https%3A%2F%2Ffivemor.com%2Fwp-content%2Fplugins%2Fbuddypress-first-letter-avatar%2Fimages%2Fdefault%2F96%2Flatin_a.png\",\"caption\":\"admin\"},\"sameAs\":[\"https:\/\/fivemor.com\"],\"url\":\"https:\/\/fivemor.com\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Automated security check against injected malicious JavaScript - Som2ny Network","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fivemor.com\/?p=89648","og_locale":"en_US","og_type":"article","og_title":"Automated security check against injected malicious JavaScript - Som2ny Network","og_description":"Posted on September 10, 2021, 1:23 pm, by Robert Mangiafico. From time to time we have guest posts on the blog. Today\u2019s post is from Konstantin Gerasimov at goivvy.com. E-commerce sites can suffer from hackers injecting pieces of JavaScript to sniff credit card or other sensitive data. It\u2019s usually a checkout page with payment forms [&hellip;]","og_url":"https:\/\/fivemor.com\/?p=89648","og_site_name":"Som2ny Network","article_published_time":"2025-02-15T12:22:23+00:00","og_image":[{"width":200,"height":200,"url":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/01\/blank.jpg","type":"image\/jpeg"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fivemor.com\/?p=89648#article","isPartOf":{"@id":"https:\/\/fivemor.com\/?p=89648"},"author":{"name":"admin","@id":"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371"},"headline":"Automated security check against injected malicious JavaScript","datePublished":"2025-02-15T12:22:23+00:00","mainEntityOfPage":{"@id":"https:\/\/fivemor.com\/?p=89648"},"wordCount":618,"commentCount":0,"publisher":{"@id":"https:\/\/fivemor.com\/#organization"},"image":{"@id":"https:\/\/fivemor.com\/?p=89648#primaryimage"},"thumbnailUrl":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/01\/blank.jpg","keywords":["Automated","Check","injected","JavaScript","malicious","Security"],"articleSection":["Internet Business"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fivemor.com\/?p=89648#respond"]}]},{"@type":"WebPage","@id":"https:\/\/fivemor.com\/?p=89648","url":"https:\/\/fivemor.com\/?p=89648","name":"Automated security check against injected malicious JavaScript - Som2ny Network","isPartOf":{"@id":"https:\/\/fivemor.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/fivemor.com\/?p=89648#primaryimage"},"image":{"@id":"https:\/\/fivemor.com\/?p=89648#primaryimage"},"thumbnailUrl":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/01\/blank.jpg","datePublished":"2025-02-15T12:22:23+00:00","breadcrumb":{"@id":"https:\/\/fivemor.com\/?p=89648#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fivemor.com\/?p=89648"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fivemor.com\/?p=89648#primaryimage","url":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/01\/blank.jpg","contentUrl":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/01\/blank.jpg","width":200,"height":200},{"@type":"BreadcrumbList","@id":"https:\/\/fivemor.com\/?p=89648#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/fivemor.com\/?bp_activities=1"},{"@type":"ListItem","position":2,"name":"Automated security check against injected malicious JavaScript"}]},{"@type":"WebSite","@id":"https:\/\/fivemor.com\/#website","url":"https:\/\/fivemor.com\/","name":"Som2ny Network","description":"Daily Deals","publisher":{"@id":"https:\/\/fivemor.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fivemor.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/fivemor.com\/#organization","name":"Som2ny Network","url":"https:\/\/fivemor.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fivemor.com\/#\/schema\/logo\/image\/","url":"https:\/\/fivemor.com\/wp-content\/uploads\/2026\/07\/4a0953c4-logo-300x86-1.png","contentUrl":"https:\/\/fivemor.com\/wp-content\/uploads\/2026\/07\/4a0953c4-logo-300x86-1.png","width":300,"height":86,"caption":"Som2ny Network"},"image":{"@id":"https:\/\/fivemor.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371","name":"admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fivemor.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/729ae85bf62b9917e93538db2f2688ca?s=96&r=g&default=https%3A%2F%2Ffivemor.com%2Fwp-content%2Fplugins%2Fbuddypress-first-letter-avatar%2Fimages%2Fdefault%2F96%2Flatin_a.png","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/729ae85bf62b9917e93538db2f2688ca?s=96&r=g&default=https%3A%2F%2Ffivemor.com%2Fwp-content%2Fplugins%2Fbuddypress-first-letter-avatar%2Fimages%2Fdefault%2F96%2Flatin_a.png","caption":"admin"},"sameAs":["https:\/\/fivemor.com"],"url":"https:\/\/fivemor.com\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/posts\/89648","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=89648"}],"version-history":[{"count":0,"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/posts\/89648\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/media\/4302"}],"wp:attachment":[{"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=89648"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=89648"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=89648"},{"taxonomy":"dealstore","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fdealstore&post=89648"},{"taxonomy":"offerexpiration","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fofferexpiration&post=89648"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}