Thursday, April 16, 2020

Splunk: Split URL Path by removing query parameters

If you have something like the below:

/easybiny.stockprice.json?dt=123213

and want only to get the path without query string:
/easybiny.stockprice.json

Then easy way is to do this in the Splunk search statement:

eval url=mvindex(split(request, "?"), 0) | table request,url

Saturday, April 4, 2020

MariaDB/MySQL show privilegies for DB User


MariaDB [xxxx]> show grants for 'xxxx'@"localhost";
+------------------------------------------------------------------------+
|Grants for xxxx@localhost                                              |
+------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'xxxx'@'localhost' IDENTIFIED BY PASSWORD '*xxx'
| GRANT SELECT, INSERT ON `dtech`.`bins` TO 'xxxx'@'localhost'          
+------------------------------------------------------------------------+

Fix "PHP Fatal error: Uncaught Error: Call to a member function bind_param() on bool in"

First of all, please make sure you have proper verbose error to identify root cause:


if ($stmt = $conn->prepare("SELECT id, password FROM accounts WHERE email = ?")) {
        $stmt->bind_param("s", $_POST['username']);
        $stmt->execute();
        $stmt->store_result();

....

else{
$error = $conn->errno . ' ' . $conn->error;
echo $error;

}


Once this in place, I can get the exact error message in browser:

1142 SELECT command denied to user 'xxxx'@'localhost' for table 'accounts'DB error

So my xxxx user does not have proper access. 

This is easily to be fixed by running the following command:

GRANT SELECT ON db.accounts TO xxxx@'localhost';


Redirect www subdomain to "apex" like subdomain

First, please always use https and proper certificate.

Secondly, add the following rule to your virtual host:

...

RewriteEngine on
RewriteCond %{SERVER_NAME} =www.stage.easybiny.com
RewriteRule ^ https://stage.easybiny.com%{REQUEST_URI} [END,NE,R=permanent]


...

Note: In this example, stage.easybiny.com is the "apex" like subdomain.

Saturday, March 28, 2020

Connect to MySQL MariaDB

Connect to MariaDB:

1.
mysql

Following prompt is to appear:
MariaDB [(none)]>

2.
show databases;

3.
use databasename;
E.g.
use dtech;

3.
show tables;


E.g.
MariaDB [dtech]> show tables;
+-----------------+
| Tables_in_dtech |
+-----------------+
| bins            |
+-----------------+
1 row in set (0.000 sec)

4.
select * from bins;

5.
exit;

Saturday, January 4, 2020

Validate html w3school using cURL

Example of command:
curl -s https://validator.w3.org/nu/?doc=https%3A%2F%2Feasybiny.com | grep "The document validates according to the specified schema(s)" | wc -l

where you can add your url in RED.

Result interpretation:
if 0 -> not valid
if 1 -> HTML is valid

Thursday, January 2, 2020

Implement HTTP Basic Authentification for your website

1. Create password file and add user/pass:
sudo htpasswd -c /etc/httpd/passwd/.easybiny user

2. Add the following directive to your desired virtual host/folder:
<Directory "/var/www/html/easybiny/stage">
    AuthType Basic
        AuthName "Restricted Content"
        AuthUserFile /etc/httpd/passwd/.easybiny
        Require valid-user
</Directory>


3. Test - it shall work like a charm: