• Blog

    Câu chuyện đầu tư của Việt An

    Việt An là một cô gái thích kinh doanh, An luôn muốn làm một cái gì đó có được nhiều tiền để giúp cho bản thân và người khác, với An tiền không xấu – không “bạc”, thậm chí nó còn giúp biến những ý tưởng của cô thành hiện thực.

    Chính vì quan niệm lạc quan và trong sáng đó, cô luôn phấn đầu và tìm cách để có được nó.

    Rồi trong một vòng lần quẩn với những từ khóa làm giàu, An vô tình nghĩ đến một từ: “đầu tư” (vì đa số những người giàu thường nhờ đầu tư) – Thế là không chần chừ, Việt An gõ vào Google từ khóa “invest” (https://en.wikipedia.org/wiki/Investment), kết quả là:

    “To invest is to allocate money (or sometimes another resource, such as time) in the expectation of some benefit in the future.”

    Allocate money? đùa à? tiền đâu mà allocate.
    Resource? không rõ ràng lắm, chẳng có gì hiện giờ.
    Time? ah, cái này An có, có nhiều nữa là khác.

    An quyết định chọn “thời gian” làm nguồn để đầu tư nhằm “expectation of some benefit in the future”.

    Có vẻ hay, nhưng đầu tư vào đâu bây giờ vì nguồn này hầu như chẳng ai cần, đúng là chẳng ai cần thời gian của bạn nếu không có tài năng và mang lại hiệu quả gì.

    Quá buồn, An khóc…

    Cô quyết định đặt một số mẫu giấy ghi những nơi khả thi để bỏ thời gian vào (ví dụ như phát tờ rơi, làm phục vụ…) – ở giữa là cây bút, với ý định là bút xoay đúng chỗ nào thì An sẽ đi làm (invest her time) chỗ đó.

    Vòng quay đầu tiên, đầu bút không chỉ đúng vào mục nào, nó xoay vào cô.
    Quay lần nữa, đầu bút cũng xoay vào hướng An mà không hướng về bất kì tờ giấy công việc nào.
    Quá buồn, An không xoay nữa, cô đứng lên và bước ra cửa sổ.

    An tự hỏi, tại sao mọi thứ lại khó khăn với mình, ngay cả khi xoay bút tìm một nơi để bỏ thời gian vào cũng chỉ vào mình chứ không chỉ vào mục tiêu nào khác.

    Tự nhiên, trong cơn buồn đôi mắt cô bừng sáng.
    “Có gì đó khác thường” – An nghĩ
    Tại sao lại chỉ vào mình?
    Phải chăng là ý trời, dường như cô vừa ngộ ra một cái gì đó lớn lao lắm.

    Đúng, đầu tư vào bản thân” – An nói.

    Tại sao không phải là bản thân chứ, đúng – chẳng có lý do gì không thể.

     

    Từ đó An quyết định sẽ đầu tư – và sẽ đầu tư vào bản thân.

    An dành thời gian chạy bộ, chơi thể thao để nâng cao sức khỏe, cô nhận ra rằng dù muốn hay không thì cơ thể là một phần sẽ đi theo suốt và không thể tách rời dù làm gì đi nữa nên cơ thể cần được khỏe mạnh.

    An mua sách và dành nhiều thời gian hơn để đọc, ngoài cơ thể thì tri thức cũng nên được rèn luyện và tiếp thu thêm.

    An chi tiêu nhiều hơn cho chính mình, ăn mặc chỉnh chu hơn, dùng những sản phẩm chất lượng thay vì rẻ tiền cho tiết kiệm.

    An không mua điện thoại mới, cô dành tiền vào đầu tư bản thân thay vì tiết kiệm để vì cái này cái nọ.

    Cô đi du lịch nhiều hơn, dùng tiền mua những trải nghiệm mới. Trước đây An từng nghĩ đi nhiều sẽ tốn nhưng thật ra trải nghiệm là những giá trị vô giá và nó giúp cô quen được nhiều bạn hơn.

    Cô chăm chỉ đi các buổi hội thảo, gặp nhiều người trong giới khởi nghiệp, lắm nghe và học hỏi.

    An tập nhạc, tập múa, tập những thứ linh tinh khiến bản thân mình vui hơn. An tập trung hơn vào ngoại ngữ, luyện tập để hoàn thiện khả năng.

     

    An làm mọi thứ để bản thân tốt hơn hôm qua

    An quen Quân ở một buổi hội thảo khời nghiệp, Quân là một giám đốc trẻ. Lần đầu gặp ấn tượng về An trong anh là một cô gái năng động, thể thao, thông minh, hiểu biết và nhiều tài lẻ.
    An phụ Quân trong việc phát triển một công ty trẻ, do quen biết nhiều nên An được nhiều người giúp đỡ, tham gia nhiều hội thảo giúp cô học được những thành công lẫn thất bại từ anh chị đi trước.

    An có một sức khỏe tốt, thân hình cân đối mà nhiều người mơ ước.
    An vẫn đang say mê với những ước mơ và kế hoạch của mình, nhưng ở một tầm cao mới.

    Trong một giây phút thư giản ngắn ngủi, An nhìn lại mục tiêu đầu tư của mình: “To invest is to allocate money (or sometimes another resource, such as time) in the expectation of some benefit in the future” Có lẽ nó đã thành công và mang lại hiệu quả, nếu không có ngày hôm ấy chắc hẳn An sẽ vẫn là một cô gái bình thường, lận đận với số phận.

    An chợt nhận ra, đầu tư cho bản thân đã giúp cô sinh lợi quá nhiều sau một thời gian ngắn. Và đặc biệt, nếu nếu đầu tư kĩ vào bản thân, thì sẽ có cuộc sống tốt hơn, thoải mái hơn.

    Khi bản thân đủ giỏi, bạn quá khó để nghèo.

  • Blog

    Nỗi niềm âu-tu (auto)…!

     

    Cuộc đời làm âu-tu
    Trải qua nhiều vất vả
    Pass – fail đều gặp cả
    Có gì đáng sợ đâu

    Nhưng có lúc lại đau
    Không hiểu sao lại Đỏ
    Dù chẳng có gì sai
    Nó là ta nghĩ mãi

    Có những lúc tưởng sai
    Nhưng chạy lại thì đúng
    Nó làm ta lúng túng
    Không biết đúng hay sai

    Mọi thứ sẽ đổi thay
    Test data cũng thế
    Ta thấy nó hôm nay
    Chắc gì sau lại gặp

    Cuộc đời vốn tấp nập
    Người đến rồi kẻ đi
    Làm sao ta biết được
    UAT data cũng thế?

    Rồi lại đến “lồ-cây”
    “Ai đi” rồi “ít bát”
    Lúc thì bắt được nhau
    Rồi một ngày bỗng mất

    Hôm nay ở tại đây
    Mai kia đi chỗ khác
    Làm sao ta hiểu được
    Những đổi thay từng ngày

    Cuộc sống vốn là thế
    Có gì ở yên đâu?
    Biết chấp nhận niềm đau
    Đứng lên và fix nó!

    Ta hy vọng một mai
    Mọi thứ rồi sẽ ổn
    Script “sẽ” toàn màu xanh
    Long lanh một “tuyệt tác”!

    //S.B

  • Automation

    Database testing with Java

    Automated from the UI is good, but it’s better if we can verify and comparing the value on the web UI with the actual value from the database, that helps us to make sure it’s correct and integrity. This article will show you how to read and verify database values with Java code.

    I will assume that you have successfully installed XAMPP so we can create the new database, table for testing this code.

    1. Database preparation

    Go to phpMyAdmin (http://localhost/phpmyadmin/) and create the new database (“TESTDB”) with the below SQL statement:

    We also need to create the table (“CUSTOMERS”) and insert some values to that table.

    Re-check your values with this SQL statement: SELECT * FROM CUSTOMERS;

    This is the full SQL statement that you can use:

     

    The results

     

    2. Working with Java code

    First, we need to download the “mysql-connector-java” jar at https://dev.mysql.com/downloads/connector/j/5.1.html

    Select and download “Platform Independent (Architecture Independent), ZIP Archive”. When the website asks for login, you just need to click on “No thanks, just start my download” if you just want to download it without login.

    Unzip this file and import “mysql-connector-java-5.1.43-bin.jar” to your project, the file version should be difference based on the time you download, so do not worry if you see the other number of jar version.

    Ok, that’s good for now, we need to create a new Class and use this code, here’s my full code and explanation below:

     

    Code Explanation:

    This is the config information, it is including your database url with dbname, user and password for accessing the data. The configuration should be the same if you are using XAMPP like me.

    Pre-define the SQL statement that you need to use, the java code will call these statements to work with database.

    Create the database connection with the below code.

     

    Note: I have set the @Test(enabled = false) to disable the test and run the single method, so if you want to execute you have to turn on by @Test(enabled = true), by this example I’m using TestNG.

    # Executing the queryShowCustomers (“SELECT * FROM CUSTOMERS”)

     

    # Executing queryUpdateCustomer (“UPDATE Customers SET ADDRESS = ‘VN’, SALARY= ‘10000’ WHERE ID = 6”)

     

    # Executing queryInsertCustomer (“INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) VALUES (7, ‘Sang’, 01, ‘AB’, 2000.00)”)

     

    # Executing queryVerifySalaryWithID (“SELECT SALARY FROM CUSTOMERS WHERE ID = 6”)

     

     

    With this example code, you can verify and read the values from database and comparing with the UI to make sure it’s the same and consistent (as we often do with manual testing). I’m willing to support if you have any difficulties or questions on this. Just let me know at the below comment box or via email (I have put the email on my blog profile).

  • Security

    CSV Excel Macro Injection at Hackerone

    Summary: CSV Excel Macro Injection at ‘reference‘ value

    Description: This is inherently risky, because any cells starting with the ‘=’ character will be interpreted by the spreadsheet software as formulae.

    Steps To Reproduce

    1. At the References of the bug report, add the below script:

    2. Download as CSV and check References column

    What is it?

    CSV Excel Macro Injection also known as CEMI.

    Many web applications allow the user to download content such as templates for invoices or user settings to a CSV file. Many users choose to open the CSV file in either Excel,Libre Office or Open Office. When a web application does not properly validate the contents of the CSV file, it could lead to contents of a cell or many cells being executed.

    The CSV cell will show this info: “Error: please click for further information” and if the user click on this message, they will exfiltrate the contents of cells A1 to http://hacker.com?leak=, which may include the user sensitive data.

     

    “Spreadsheet software could take steps to mitigate some of these attacks, but preventing formula injection is ultimately the responsibility of every application that generates spreadsheets containing user-supplied content. At present, the best defence strategy we are aware of is prefixing cells that start with ‘=’ , ‘+’ or ‘-‘ with an apostrophe. This will ensure that the cell isn’t interpreted as a formula, and as a bonus in Microsoft Excel the apostrophe itself will not be displayed.

    Another lesson from this is that .csv and .tsv files should not be viewed as equivalent to .txt files in terms of safety, as it’s simple to embed active content into them.”

     

    Reference

    https://www.owasp.org/index.php/CSV_Excel_Macro_Injection
    https://www.contextis.com/resources/blog/comma-separated-vulnerabilities