We present a practical protection mechanism against SQL injection attacks. Such attacks target databases that are accessible through a web front-end, and take advantage of flaws in the input validation logic of Web components such as CGI scripts. We apply the concept of instruction-set randomization to SQL, creating instances of the language that are unpredictable to the attacker. Queries injected by the attacker will be caught and terminated by the database parser. We show how to use this technique with the MySQL database using an intermediary proxy that translates the random SQL to its standard language. Our mechanism imposes negligible performance overhead to query processing and can be easily retrofitted to existing systems.
Read the rest of this entry »
In this paper we describe a Python- and Tkinter-based visual-programming environment called ViPEr. This tool enables non-programmers to build computational and visualization networks interactively. Computational nodes can be placed onto a canvas and their input and output ports can be connected using the mouse. The connections between the nodes define a directed graph that will be used to propagate data and trigger the execution of nodes that have new input data. ViPEr is, in appearance, similar to programs such as AVS [Upson et al. 89] from Advanced Visual Simulations Inc, or OpenDX [DX 93] from IBM, but presents some fundamental differences which will be pointed out throughout this paper. Several examples of applications will be used to illustrate ViPEr’s design and current range of capabilities.
Read the rest of this entry »
This book shows you how to write programs for the MRG Messaging component of the Red Hat Enterprise MRG distributed computing platforming using the Apache Qpid API. It also gives basic information on downloading and installing MRG Messaging. For more complete information on how to download and install MRG Messaging see the MRG Messaging Installation Guide.
Read the rest of this entry »
While we are enormously pleased with Python as a programming language for introductory classes, we did note a few issues which were awkward or confusing to Intro students. We want to make it clear in discussing these issues that we are only speaking from the point of view of novice programmers. Experienced programmers might well have very different views.
Read the rest of this entry »
The IMAQ 1426 is a highly flexible image acquisition (IMAQ) device that supports a diverse range of Camera Link-compatible cameras from various camera companies. The IMAQ 1426 acquires digital images in real time and stores the images in onboard frame memory or transfers them directly to system memory. Featuring a high-speed data flow path, the IMAQ 1426 is ideal for both industrial and scientific environments.
Read the rest of this entry »
The Java language has revolutionized the way we program applications for the Internet. Two great ideas make this language so promising:
• Applications written using Java run on multiple different platforms.
• Automatic memory management or garbage collection (GC) comes as a great relief for developers.
Other than these two issues, most of the remaining Java features can be implemented using the majority of other languages. Since its first public release in 1995, the Java language has been maturing and consolidating its position in the market as an increasing number of organizations realize its built-in strengths.
Read the rest of this entry »
This paper explains our efforts to add Ada to Microsoft’s family of .NET languages. There are several advantages to weaving Ada into the Common Language Environment provided by the .NET environment. This paper explains our approach and current progress on the research. We provide the means to extract Ada specification files from Microsoft Intermediate Language (MSIL) code and compile Ada programs into MSIL.
Read the rest of this entry »
Crystal Reports has enjoyed a long association with Microsoft and has shipped with Visual Basic (and subsequently Visual Studio) as the default report writer since 1993. Developers have traditionally had a love-hate relationship with Crystal Reports; they loved the functionality it provided and the free run-time license, but they hated having to upgrade to the latest version to get the features they required. Another complaint was that reports could not be created or modified programmatically; they could be created only through the user interface (UI) with either the developer UI with Visual Studio or the consumer UI with the Crystal Reports retail package.
Read the rest of this entry »