Requirement 6 of PCI DSS v1.2 states that in order to be compliant, an organization must: “Develop and maintain secure systems and applications” “Unscrupulous individuals use security vulnerabilities to gain privileged access to systems. Many of these vulnerabilities are fixed by vendor- provided security patches, which must be installed by the entities that manage the [...]
Requirement 4 of PCI DSS v1.2 states that we must: “Encrypt transmission of cardholder data across open, public networks” Specifically, “Sensitive information must be encrypted during transmission over networks that are easily accessed by malicious individuals. Misconfigured wireless networks and vulnerabilities in legacy encryption and authentication protocols can be continued targets of malicious individuals who [...]
Requirement 3 of the PCI DSS v1.2 is: “Protect Stored Cardholder Data” As vague as that sounds, the PCI DSS enumerates exactly what that covers: Data Element Storage Permitted Protection Required PCI DSS Req 3.4 Primary Account Number Yes Yes Yes Cardholder Name* Yes Yes No Service Code* Yes Yes No Expiration Date* Yes Yes [...]
Requirement 2 of the PCI DSS v1.2 is: “Do not use vendor-supplied defaults for system passwords and other security parameters” Understanding that we’re limiting the discussion solely to MySQL (OS, Network Devices, and other software will no doubt apply to overall compliance), we can do this easily. The vendor-supplied default MySQL 5.1.43 (they’re similar across [...]
From a security standpoint VFP is a nightmare. You can do pretty much anything on the program end with passwords etc but I never found a way around the fact that you pretty much have to give the client access to the Data directory. VFP being a flat file system (even with the introduction of DBC’s – databases) you had to give the client at the very least read access to the tables and if you wanted him/her to change something then write access too. Only way around that might have been to use VFPOLEDB and a web server but then why use VFP.
Now moving to MYSQL I want to point out some instant benefits you get migrating to MYSQL and that is security. One thing probably not immediatly visible to a newbie is the power of the “DEFINER” and INVOKER security options on stored procedures. This allows clients to do things under certain circumstances that they do have no right to. I want to use the following example to demonstrate the very …
[Read more]This is the 182nd edition of Log Buffer, the weekly review of database blogs. Make sure to read the whole edition so you do not miss where to submit your SQL limerick!
This week started out with me posting about International Women’s Day, and has me personally attending Confoo (Montreal) which is an excellent conference I hope to return to next year. I learned a lot from confoo, especially the blending nosql and sql session I attended.
This week was also the Hotsos Symposium. …
[Read more]I had someone point out to me that some of the sample code I have used might be vulnerable to an insertion attack. So I feel it is time to address this subject.
First when using examples I try to just focus on the subject of the current blog and often strip a lot of things that are irrelevant to the point I am trying to make out. But now to the subject of keeping your code save.
If you write and SQL statement looking something like
lc_sql = “SELECT * from customer WHERE custno = ‘” + lc_custno + “‘”
Someone could enter “‘; TRUNCATE TABLE customer;’” resulting in a SQL statement looking like
SELECT * from customer WHERE custno = ”; TRUNCATE TABLE customer; ”
Which could be quite disasterous. So to avoid this we could use parameterized queries which I cannot as I am using a seperate function to wrap around the SQLEXEC() function to do all kinds of things like …
[Read more]
I recently granted ALTER
access in MySQL so a user
could run the ALTER TABLE
command . However after I
granted the necessary privileges, the user was still not able to
perform the tasks needed. Reproducing the issue using a test
instance, I granted a test user the required privileges and MySQL
reported no errors or warnings when the ALTER TABLE
was run:
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 15 Server version: 5.1.41-log MySQL Community Server (GPL) Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> grant alter,create,insert on *.* to 'test'@localhost; Query OK, 0 rows affected (0.00 sec) mysql> show warnings; Empty set (0.00 sec) mysql> show errors; Empty set (0.00 sec) mysql>
The reason I granted the addition CREATE
and
INSERT
privileges is that according to the MySQL
documentation ( …
A special extended edition of Tech Messages for 2010-02-20 through 2010-02-24:
-
Gartner EXP Worldwide Survey of Nearly 1,600 CIOs
Shows IT Budgets in 2010 to be at 2005 Levels
Virtualization tops the technology priorities. - Cisco Offers Three-Year, Zero-Percent Financing to U.S. Small and Medium-Sized Businesses -> Cisco News
-
Marc Alff's blog: Performance schema
overview
Really interesting stuff for MySQL developers. - …
This Thursday (February 25th, 13:00 UTC - way
earlier than usual!), Darren Cassar will present Securich - Security Plugin for MySQL.
According to Darren, the author of the plugin, Securich is an
incredibly handy and versatile tool for managing user privileges
on MySQL through the use of roles. It basically makes granting
and revoking rights a piece of cake, not to mention added
security it provides through password expiry and password
history, the customization level it permits, the fact that it
runs on any MySQL 5.0 or later and it's easily deployable on any
official MySQL binary, platform independent.
More information here: http://www.securich.com/about.html.
For MySQL University sessions, point your …
[Read more]